]> git.eshelyaron.com Git - emacs.git/log
emacs.git
6 weeks agoEglot: be aware of LSP version of contextual diagnostics
João Távora [Wed, 16 Apr 2025 23:31:07 +0000 (00:31 +0100)]
Eglot: be aware of LSP version of contextual diagnostics

In certain situations, Eglot has to report to the server parts
of the diagnostics that it itself sent us.  The server may use
this as context to compute code actions, for example.  Eglot
selects diagnostics by asking Flymake, looking for the ones that
contain Eglot-specific cookies.

But when doing so, it is important to also be aware of the LSP
document version these each of these diagnostics pertain to,
since if a diagonstic in the buffer pertains to an older version
of the LSP document (because Flymake fired or the server hasn't
pushed a new set), that diagnostics 'eglot-lsp-data' cookie is
invalid and possibly harmful.

An example is when a diagnostic extends all the way to the end
of the buffer.  If we attempt to fix by shortening the buffer,
an Eldoc-started code actions request may be sent to the server
considering the soon-to-be-deleted Flymake diagnostic as
context.  But that diagnostic's 'eglot-lsp-data' cookie is no
longer valid and when processing that context we try to go past
point-max and burp an annoying error.

Best to check the version of the diagnostic (if we have it) and
ignore the ones that don't match the document version.

* lisp/progmodes/eglot.el (eglot--versioned-identifier): Move up.
(eglot--flymake-diagnostics, eglot--diag-to-lsp-diag): New helpers.
(eglot-handle-notification): Record LSP doc version in diagnostics.
(eglot--code-action-bounds)
(eglot--code-action-params): Use eglot--flymake-diagnostics.

(cherry picked from commit c5b97b7b321c873dbe8a36d27781435ba10a2278)

6 weeks ago; Skip commit 2330e7b6d676761b60c3247f53224815512a9a58
Eshel Yaron [Thu, 17 Apr 2025 07:14:00 +0000 (09:14 +0200)]
; Skip commit 2330e7b6d676761b60c3247f53224815512a9a58

6 weeks agosavehist: Take care not to set nil
Eshel Yaron [Thu, 17 Apr 2025 07:13:37 +0000 (09:13 +0200)]
savehist: Take care not to set nil

6 weeks ago* lisp/textmodes/markdown-ts-mode.el: More ts-modes for code blocks.
Juri Linkov [Wed, 16 Apr 2025 18:45:40 +0000 (21:45 +0300)]
* lisp/textmodes/markdown-ts-mode.el: More ts-modes for code blocks.

(markdown-ts--code-block-language-map): Add more aliases.
(markdown-ts-code-block-source-mode-map): Add more mappings
for existing core ts-modes.
(markdown-ts--convert-code-block-language):
Check 'lang-string' with 'symbolp'.  Check 'mode' with 'fboundp'.

(cherry picked from commit f68482cbc047925d22acf687b814cb94dd7b5bf0)

6 weeks agoChange the default navigation sexp-type in 'elixir-ts-mode'.
Juri Linkov [Wed, 16 Apr 2025 17:32:54 +0000 (20:32 +0300)]
Change the default navigation sexp-type in 'elixir-ts-mode'.

* lisp/progmodes/elixir-ts-mode.el (elixir-ts-mode):
Call 'treesit-cycle-sexp-type' at the end to enable navigation across
nodes defined by the tree-sitter thing 'sexp' by default (bug#76788).

(cherry picked from commit a6d746400cdf237b58c60920f4cb9a38db12951d)

6 weeks agoNew hook 'outline-after-change-functions' (bug#77256).
Juri Linkov [Wed, 16 Apr 2025 17:11:34 +0000 (20:11 +0300)]
New hook 'outline-after-change-functions' (bug#77256).

* lisp/outline.el (outline-after-change-functions): New variable.
(outline--fix-buttons-after-change):
Run hook 'outline-after-change-functions'.

* lisp/treesit.el (treesit--after-change): Improve docstring.
(treesit-major-mode-setup): Simplify to just add
'treesit--after-change' to 'outline-after-change-functions' hook.

* lisp/progmodes/rust-ts-mode.el (rust-ts-mode): Add explicit
'treesit-outline-predicate' that is like
'treesit-simple-imenu-settings', but also adds "trait_item".

(cherry picked from commit 7574eb82c5cd150a0706a81e9f8555962a1e2167)

6 weeks agoAdd 'treesit-language-at-point-default' (bug#77256).
Juri Linkov [Wed, 16 Apr 2025 17:00:56 +0000 (20:00 +0300)]
Add 'treesit-language-at-point-default' (bug#77256).

* lisp/treesit.el (treesit-language-at-point-function):
Change the default value from nil to 'treesit-language-at-point-default'.
(treesit-language-at): Funcall 'treesit-language-at-point-function'
unconditionally.
(treesit-language-at-point-default): New function with body from
'treesit-language-at'.
(treesit-node-at): Simplify by replacing duplicate code
with the call to 'treesit-parsers-at'.

(cherry picked from commit 77bf9d33ee42d90e86d9cc5d3a67356b19ca2f6b)

6 weeks ago(Freplace_region_contents): Treat point as insert-before marker
Stefan Monnier [Wed, 16 Apr 2025 14:15:16 +0000 (10:15 -0400)]
(Freplace_region_contents): Treat point as insert-before marker

Experience suggests that it's more often useful to keep point
at the end of the replacement than it is to keep point at the
beginning of the replacement.
This also aligns the behavior of `replace-region-contents` with
that of `insert`.

* src/insdel.c (replace_range): Treat PT like an insert-before marker.
* src/editfns.c (Freplace_region_contents): Adjust docstring accordingly.

(cherry picked from commit 4532fbefece210061d01ab9523f3054aadb1c45a)

6 weeks ago; Improve documentation of 'help-fns-edit-variable'
Eli Zaretskii [Wed, 16 Apr 2025 08:13:41 +0000 (11:13 +0300)]
; Improve documentation of 'help-fns-edit-variable'

* lisp/help-fns.el (help-fns-edit-variable)
(help-enable-variable-value-editing): Doc fixes.

(cherry picked from commit bf737dc42a70fd8665b7c5ad506249a6119ec4c4)

6 weeks ago; Fix documentation of a recent commit
Eli Zaretskii [Wed, 16 Apr 2025 07:17:30 +0000 (10:17 +0300)]
; Fix documentation of a recent commit

* lisp/textmodes/markdown-ts-mode.el (markdown-ts-delimiter)
(markdown-ts-heading-1, markdown-ts-setext-heading)
(markdown-ts-heading-2, markdown-ts-heading-3)
(markdown-ts-heading-4, markdown-ts-heading-5)
(markdown-ts-heading-6, markdown-ts-list-marker)
(markdown-ts-block-quote, markdown-ts-language-keyword)
(markdown-ts--configured-languages): Doc fixes.

(cherry picked from commit 179c6931c57700d842179eb193369de1587287ee)

6 weeks ago* test/lisp/tab-bar-tests.el (tab-bar-tests-quit-restore-window): Fix.
Juri Linkov [Wed, 16 Apr 2025 06:23:35 +0000 (09:23 +0300)]
* test/lisp/tab-bar-tests.el (tab-bar-tests-quit-restore-window): Fix.

Select the created frame because 'quit-window' unexpectedly
selects the original frame (https://debbugs.gnu.org/71386#262).
Add a comment about the `message' call bound to the original frame.
https://lists.gnu.org/archive/html/emacs-devel/2025-04/msg00546.html

(cherry picked from commit 864bc762a2006a549ce5274f872c3233ef09003a)

6 weeks agoExpand markdown-ts-mode and add code block support for javascript
Yuan Fu [Wed, 12 Mar 2025 03:37:43 +0000 (20:37 -0700)]
Expand markdown-ts-mode and add code block support for javascript

- Define new faces and use them in place of font-lock faces
- Add more fontification, add a new feature for headings.
- Remove fontification for code blocks, so embedeed parser can
  fontify them
- Add experimental code block support for javascript by using
  tree-sitter setup from js-ts-mode.
- Correctly setup markdown_inline with range settings.

* lisp/textmodes/markdown-ts-mode.el:
(markdown-ts--code-block-language-map):
(markdown-ts-code-block-source-mode-map): New variables.
(markdown-ts-faces): New group.
(markdown-ts-delimiter):
(markdown-ts-heading-1):
(markdown-ts-setext-heading):
(markdown-ts-heading-2):
(markdown-ts-heading-3):
(markdown-ts-heading-4):
(markdown-ts-heading-5):
(markdown-ts-heading-6):
(markdown-ts-list-marker):
(markdown-ts-block-quote):
(markdown-ts-language-keyword): New faces.
(markdown-ts--treesit-settings):
(markdown-ts--configured-languages): New variables.
(markdown-ts--harvest-treesit-configs):
(markdown-ts--add-config-for-mode):
(markdown-ts--convert-code-block-language): New functions.
(markdown-ts--range-settings): New variable.
(markdown-ts-setup): Setup range configuration.
(markdown-ts-mode): Add heading feature.

(cherry picked from commit 6f1e317764dab918d40b08d2e8e9166d42ae6c8d)

6 weeks ago; Add missing :group to new defcustom
Stefan Kangas [Tue, 15 Apr 2025 20:22:16 +0000 (22:22 +0200)]
; Add missing :group to new defcustom

* lisp/dired-aux.el (dired-create-empty-file-in-current-directory):
Add missing :group.

(cherry picked from commit 23b957e128a270f0ea829103839f5645e1c1bf1d)

6 weeks agoShow drag cursor on all window lines (mode, tab, header)
Jared Finder [Sat, 22 Feb 2025 22:25:37 +0000 (14:25 -0800)]
Show drag cursor on all window lines (mode, tab, header)

* lisp/ruler-mode.el (ruler-mode-map): Remove down-mouse-1
binding that conflicts with dragging header line.
* src/xdisp.c (note_mode_line_or_margin_highlight): Renamed
to...
(note_line_or_margin_highlight): ...new name since it applies to
any window line (mode, tab, header).  Set drag cursor for window
top lines.
(note_mouse_highlight): Update call to new name (bug#76084).

(cherry picked from commit 8528249ee29b243772de48c7c44d07744adb3afc)

6 weeks agoBetter handle errors after sync man invocations
Jens Schmidt [Fri, 11 Apr 2025 22:02:56 +0000 (00:02 +0200)]
Better handle errors after sync man invocations

* lisp/man.el (Man-start-calling): Declare as debuggable.
(Man-getpage-in-background): Call `Man-bgproc-sentinel' with a
cons (BUFFER . EXIT-STATUS) as PROCESS argument for synchronous calls.
(Man-bgproc-sentinel): Use that information to handle those more
similarly to asynchronous calls.  Do not employ window selection hacks
for synchronous calls.  (Bug#77755)

(cherry picked from commit f67e64028efd2d2b12126039ffd830e769015910)

6 weeks ago; Skip commit 1d3b1b7d88d7710aed9403c3ce750042387dfe5c
Eshel Yaron [Wed, 16 Apr 2025 07:35:38 +0000 (09:35 +0200)]
; Skip commit 1d3b1b7d88d7710aed9403c3ce750042387dfe5c

6 weeks ago* lisp/treesit.el (treesit-up-list): Signal an error.
Juri Linkov [Tue, 15 Apr 2025 17:33:14 +0000 (20:33 +0300)]
* lisp/treesit.el (treesit-up-list): Signal an error.

Signal 'scan-error' when called noninteractively (bug#77744).

(cherry picked from commit aa24b9c849d13aa63de3079672003fb760bf511f)

6 weeks agoOptionally add new empty file to Dired subdirectory
Stephen Berman [Tue, 15 Apr 2025 17:01:19 +0000 (19:01 +0200)]
Optionally add new empty file to Dired subdirectory

Suggested by Kasper Gałkowski <kpg@posteo.net> (bug#77668)

* etc/NEWS: Announce new Dired user option.

* lisp/dired-aux.el (dired-create-empty-file-in-current-directory):
New user option.
(dired-create-empty-file): Use it.  Update and clarify doc string.

(cherry picked from commit 0ac12aed09702b2d135312e8dad4e173fcd23dae)

6 weeks agoAdd block-comment variables to cc-mode.
Elías Gabriel Pérez [Sun, 13 Apr 2025 18:26:08 +0000 (12:26 -0600)]
Add block-comment variables to cc-mode.

* lisp/progmodes/cc-cmds.el (c-indent-new-comment-line):
Add block-comment-start and block-comment-end
* lisp/progmodes/cc-mode.el (c-basic-common-init):
Declare block-comment-start and block-comment-end buffer-local.
* lisp/emacs-lisp/lisp-mode.el (lisp-mode-variables): Move
block-comment variables ...
(lisp-mode): ... to here.  (Bug#77424)

(cherry picked from commit 74842b4cb2c164ceed5cbe6ee5ad578ee46fe012)

6 weeks agoFix tree-sitter tests on Emba
Michael Albinus [Tue, 15 Apr 2025 12:17:25 +0000 (14:17 +0200)]
Fix tree-sitter tests on Emba

* test/infra/Dockerfile.emba: Use tree-sitter-rust v0.23.3 in
order to match ABI version of libtree-sitter0.

(cherry picked from commit 788c9cfb62c7fd50b171a9209dd7453bd03f14bf)

6 weeks ago; * exec/loader-mips64el.s (skip_environ): Eliminate one more `daddi'.
Po Lu [Tue, 15 Apr 2025 09:20:37 +0000 (17:20 +0800)]
; * exec/loader-mips64el.s (skip_environ): Eliminate one more `daddi'.

(cherry picked from commit 2b7268c43f52942f88aef1cf442603819c505b21)

6 weeks agoUnconditionally define MIPS_NABI on mips64el
Po Lu [Tue, 15 Apr 2025 09:20:05 +0000 (17:20 +0800)]
Unconditionally define MIPS_NABI on mips64el

* exec/configure.ac (MIPS_NABI): Always define to 1 on
mips64el-*-linux*.

(cherry picked from commit 638b084a611316c6fa4a58adb4dec97e461b31da)

6 weeks ago; Skip commit 3f73b29875dcfcc9b22d8346f8965f3fb31f4fb4
Eshel Yaron [Wed, 16 Apr 2025 07:34:52 +0000 (09:34 +0200)]
; Skip commit 3f73b29875dcfcc9b22d8346f8965f3fb31f4fb4

6 weeks ago* exec/loader-mips64el.s (rest_of_exec): Deal with assembler bugs.
Po Lu [Tue, 15 Apr 2025 09:11:56 +0000 (17:11 +0800)]
* exec/loader-mips64el.s (rest_of_exec): Deal with assembler bugs.

(cherry picked from commit 19b6e36a22513b437b86d4b6418ce31f551902cc)

6 weeks ago* exec/configure.ac (exec_CHECK_MIPS_NABI): Test __LP64__ also.
Po Lu [Tue, 15 Apr 2025 09:03:57 +0000 (17:03 +0800)]
* exec/configure.ac (exec_CHECK_MIPS_NABI): Test __LP64__ also.

(cherry picked from commit 458ad0cb899491da546c06a3f1cd63c0f54623ac)

6 weeks agoPort recent Android changes to mips64el
Po Lu [Tue, 15 Apr 2025 08:14:14 +0000 (16:14 +0800)]
Port recent Android changes to mips64el

* exec/config-mips.m4.in (DADDI2, DADDI3): Disable at-clobbering
by assembler macros expressly.

* exec/loader-mips64el.s: Adapt from loader-mipsel.s.

* exec/configure.ac (exec_cv_as_daddi): Properly escape reg
names.

* exec/exec.c (struct exec_jump_command, exec_0): Don't define
or set `fpu_mode' if __LP64__.

* exec/exec.h (struct exec_tracee): New field `callno'.

* exec/trace.c (process_system_call): Always record the current
system call number in TRACEE lest it should be required once it
has been overwritten upon the syscall's completion.
(seccomp_system_call): Likewise.
(after_fork): Clear `tracee->callno'.

(cherry picked from commit 5bf86e2be0693c579a43759fd1da1651344d401e)

6 weeks ago; Fix tab-bar-tests on MS-Windows
Eli Zaretskii [Tue, 15 Apr 2025 06:45:16 +0000 (09:45 +0300)]
; Fix tab-bar-tests on MS-Windows

* test/lisp/tab-bar-tests.el (tab-bar-tests-quit-restore-window):
Skip test on MS-Windows in batch mode, since terminal frames
cannot be created in that case.

(cherry picked from commit c3fe19aab90c3da68e9a8a48dbfb011317041d1a)

6 weeks agoAddress typos in MIPS executable loader
Po Lu [Tue, 15 Apr 2025 03:14:14 +0000 (11:14 +0800)]
Address typos in MIPS executable loader

* exec/loader-mipsel.s (rest_of_exec): Delete redundant nop.
(skip_environ): Correct stack space test.  Don't jump into
the label for the sp preserving case's delay slot.

(cherry picked from commit e790873be10720c108b9d6833ce0232167f03bf2)

6 weeks agoAvoid performance regressions in unoptimized builds
Po Lu [Tue, 15 Apr 2025 01:53:27 +0000 (09:53 +0800)]
Avoid performance regressions in unoptimized builds

* src/alloc.c (lisp_malloc): Declare val register.

(cherry picked from commit b4551334508076b10a895e400beba5b3e9a5e14c)

6 weeks agoRemove unused XMALLOC_BLOCK_INPUT_CHECK debug facility
Stefan Kangas [Mon, 14 Apr 2025 18:40:49 +0000 (20:40 +0200)]
Remove unused XMALLOC_BLOCK_INPUT_CHECK debug facility

The compile-time option XMALLOC_BLOCK_INPUT_CHECK was added in
2012 (commit 4d7e6e51dd4acecff) to allow blocking input during
malloc-family calls, in case any issues arose from related
changes in Emacs 24.3.  However, it has not been referenced on
emacs-devel or the bug tracker in over a decade.

It is clear that we do not need it, as our signal handlers do not
allocate memory.  Removing it simplifies the allocation function
wrappers and eliminates dead debug code.

Ref: https://debbugs.gnu.org/12450

* src/alloc.c [XMALLOC_BLOCK_INPUT_CHECK]
(malloc_block_input, malloc_unblock_input): Delete functions.
(MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT): Delete macros.  Update
all callers.

(cherry picked from commit a7f5d183a8c13dfb7fb43777abdf96233df0ca0c)

6 weeks agoPort recent changes to mipsel systems
Po Lu [Mon, 14 Apr 2025 13:28:15 +0000 (21:28 +0800)]
Port recent changes to mipsel systems

* exec/exec.c (exec_0): Don't disable AT_EXECFN substitution on
MIPS systems.

* exec/loader-aarch64.s (skip_environ): Correct typo in
commentary.

* exec/loader-mips64el.s: Add a disclaimer that this file is
currently inoperable.

* exec/loader-mipsel.s (__start): Move environment and argument
vectors and produce and replace AT_EXECFN.  Clear stack before
proceeding to circumvent an oversight in glibc.

(cherry picked from commit 74df372398dbc90f6c0185f1701af28129073de7)

6 weeks agoSupport file:// URIs and readonly DB in 'sqlite-open'
Eli Zaretskii [Mon, 14 Apr 2025 09:42:28 +0000 (12:42 +0300)]
Support file:// URIs and readonly DB in 'sqlite-open'

* src/sqlite.c (Fsqlite_open): Two new optional arguments,
READONLY and DISABLE-URI.  Doc fix.

* etc/NEWS:
* doc/lispref/text.texi (Database): Document the new optional
arguments to 'sqlite-open'.  (Bug#65274)

(cherry picked from commit 4918de1699152e98c7aaa3ecb21795a3cbd05194)

6 weeks ago; Skip commit f7ca720e2d0aebeabc454a24a600c23fd444b60b
Eshel Yaron [Wed, 16 Apr 2025 07:34:19 +0000 (09:34 +0200)]
; Skip commit f7ca720e2d0aebeabc454a24a600c23fd444b60b

6 weeks agoFix typos in executable loaders
Po Lu [Mon, 14 Apr 2025 01:10:14 +0000 (09:10 +0800)]
Fix typos in executable loaders

* exec/loader-aarch64.s (skip_environ, cleanup): Minor thinkos.

* exec/loader-x86_64.s (skip_environ): Insert missing label.

(cherry picked from commit 462bd149cddc2a7ba81de7ad0c286bcb64681d69)

6 weeks agoFix help-customize in describe-symbol buffers
Dmitry Gutov [Mon, 14 Apr 2025 00:34:42 +0000 (03:34 +0300)]
Fix help-customize in describe-symbol buffers

* lisp/help-fns.el (describe-symbol):
Protect help-mode--current-data from being modified inside the
help-setup-xref call (bug#77510).

(cherry picked from commit f7e34d52dcc175f3205e308ab57e83d7b0515792)

6 weeks ago'dabbrev-buffer-search-condition': Exclude 'image-mode'
Eshel Yaron [Wed, 16 Apr 2025 07:30:10 +0000 (09:30 +0200)]
'dabbrev-buffer-search-condition': Exclude 'image-mode'

6 weeks agosavehist: Only save readable values
Eshel Yaron [Mon, 14 Apr 2025 17:01:15 +0000 (19:01 +0200)]
savehist: Only save readable values

6 weeks agoMinor clean up
Eshel Yaron [Mon, 14 Apr 2025 17:00:49 +0000 (19:00 +0200)]
Minor clean up

6 weeks agostartup.el: Various cleanups, move abbrev to Lisp.
Eshel Yaron [Mon, 14 Apr 2025 15:45:52 +0000 (17:45 +0200)]
startup.el: Various cleanups, move abbrev to Lisp.

6 weeks agodabbrev: also filter visible buffers.
Eshel Yaron [Mon, 14 Apr 2025 15:43:04 +0000 (17:43 +0200)]
dabbrev: also filter visible buffers.

6 weeks ago(cl-generic-define-method): Try and fix bug#77464
Stefan Monnier [Sun, 13 Apr 2025 16:45:54 +0000 (12:45 -0400)]
(cl-generic-define-method): Try and fix bug#77464

* lisp/emacs-lisp/cl-generic.el (cl-generic-define-method): Don't set
the function to `dummy`, even temporarily.

(cherry picked from commit 19913b1567940b8af5bfcef5c6efe19a3656e66b)

6 weeks ago; Skip commit 1dee377bad00737c4730339f62467f45224b5089
Eshel Yaron [Sun, 13 Apr 2025 21:02:34 +0000 (23:02 +0200)]
; Skip commit 1dee377bad00737c4730339f62467f45224b5089

6 weeks ago(calc-save-modes): Add a `lexical-binding` cookie
Stefan Monnier [Sun, 13 Apr 2025 14:33:47 +0000 (10:33 -0400)]
(calc-save-modes): Add a `lexical-binding` cookie

* lisp/calc/calc-mode.el (calc-save-modes): Add a `lexical-binding`
cookie when it is safe.  Use `pcase-dolist` and `pp`.

(cherry picked from commit 9dfd4c6bd3140585392a428201088e9f019b0071)

6 weeks ago; Skip commit e0c7b6e31e8c03dd66a929742898f2d6e2628356
Eshel Yaron [Sun, 13 Apr 2025 21:01:33 +0000 (23:01 +0200)]
; Skip commit e0c7b6e31e8c03dd66a929742898f2d6e2628356

6 weeks ago; Fix recently broken test (bug#77777).
Eshel Yaron [Sun, 13 Apr 2025 11:53:29 +0000 (13:53 +0200)]
; Fix recently broken test (bug#77777).

* test/lisp/emacs-lisp/find-func-tests.el
(find-func-tests--locate-macro-generated-symbols): bind
'trusted-content' to names of files in which we want to
expand macros during this test.

(cherry picked from commit ebaf4241263e167e992981efb8d1bf571f311803)

6 weeks agoReplace AT_EXECFN in auxiliary vectors of programs executed on Android
Po Lu [Sun, 13 Apr 2025 10:50:59 +0000 (18:50 +0800)]
Replace AT_EXECFN in auxiliary vectors of programs executed on Android

* exec/exec.c (insert_args, exec_0): On non-MIPS systems, copy
NAME and its length to the loader area.  State that MIPS support
is not yet available (though it will be pending the availability
of a functioning emulator).

* exec/loader-aarch64.s (_start):

* exec/loader-armeabi.s (_start):

* exec/loader-x86.s (_start):

* exec/loader-x86_64.s (_start): Displace auxv, environ, and
argv to create sufficient space for the provided file name, and
copy the file name there.  Replace AT_EXECFN to refer to this
space.

(cherry picked from commit 7a01350624e1665e707f98e13d51f53e9f87ce95)

6 weeks ago; Fix last change
Eli Zaretskii [Sun, 13 Apr 2025 10:03:03 +0000 (13:03 +0300)]
; Fix last change

* lisp/progmodes/elisp-mode.el (elisp-eldoc-docstring-length-limit):
* etc/NEWS: Fix documentation of last change.  (Bug#77628)

(cherry picked from commit f5b59a8a7318d611a04ef32f4042e3ca9bd1b315)

6 weeks agoAdd variable for control docstring length in elisp eldoc functions
Elías Gabriel Pérez [Tue, 8 Apr 2025 05:00:20 +0000 (23:00 -0600)]
Add variable for control docstring length in elisp eldoc functions

* etc/NEWS: Announce new variable.
* lisp/progmodes/elisp-mode.el (elisp-eldoc-docstring-length-limit):
New user option.
(elisp-eldoc-funcall-with-docstring): Add "Undocumented" as
docstring if the function has no docstring.
(elisp-eldoc-var-docstring-with-value): Use
`elisp-eldoc-docstring-length-limit'.  (Bug#77628)

(cherry picked from commit 53bd9f54c61d5edac8b04cc6b72aadb48466110e)

6 weeks ago; Fix a typo in proced.el
Eli Zaretskii [Sun, 13 Apr 2025 09:38:04 +0000 (12:38 +0300)]
; Fix a typo in proced.el

* lisp/proced.el (proced-filter): Fix a typo.  Reported by Armin
Darvish <armindarvish@gmail.com>.  (Bug#77713)

(cherry picked from commit 3a13fb2069fc861e20fca893aa64dd70dcef0de3)

6 weeks ago; (url-generic-parse-url/ms-windows-file-uri-hanlding): Fix test.
Eli Zaretskii [Sun, 13 Apr 2025 09:14:27 +0000 (12:14 +0300)]
; (url-generic-parse-url/ms-windows-file-uri-hanlding): Fix test.

(cherry picked from commit c4012904fd87e158a76f9b8017684def3b206a3a)

6 weeks ago; Fix last change
Eli Zaretskii [Sun, 13 Apr 2025 09:12:13 +0000 (12:12 +0300)]
; Fix last change

* test/lisp/url/url-parse-tests.el
(url-generic-parse-url/ms-windows-file-uri-hanlding): Reformat and
fix the test on MS-Windows.

(cherry picked from commit c76892edd28a7bfd7c303c3161d7ddf41c646541)

6 weeks agoSpecial treatment for file:// URIs on Windows
Sebastián Monía [Tue, 8 Apr 2025 22:09:06 +0000 (18:09 -0400)]
Special treatment for file:// URIs on Windows

* lisp/url/url-parse.el (url-generic-parse-url): Remove prefix /
when a file URI's filename starts with a single letter followed
by a colon and a slash or backslash.
(url-recreate-url): Mirror the change applied when parsing, so
the URL is recreated properly on MS-Windows.
* test/lisp/url/url-parse-tests.el
(url-generic-parse-url/ms-windows-file-uri-hanlding): New test.
(Bug#76982)

(cherry picked from commit fec6e16f143c08d68ad336b9039f8ed1c3cbfc05)

6 weeks ago; Skip commit 6f494d74f645d6cffd98e168721a0347de271a54
Eshel Yaron [Sun, 13 Apr 2025 20:59:40 +0000 (22:59 +0200)]
; Skip commit 6f494d74f645d6cffd98e168721a0347de271a54

6 weeks agoUse a pristine copy of argv to restart Emacs
Jens Schmidt [Wed, 2 Apr 2025 20:48:31 +0000 (22:48 +0200)]
Use a pristine copy of argv to restart Emacs

argv as left after main has proccessed the command-line can differ
both in order and contents of the original command-line arguments,
which can lead to surprising results when restarting emacs on the
cooked argv through `kill-emacs'.

Starting from that observation, consistenly use variables
'initial_cmdline' on Windows, 'initial_argc', 'initial_argv' on
non-Windows, and 'initial_argv0' in all ports.

* src/lisp.h: Declare 'initial_argv0', limit declaration of
'initial_argv' and 'initial_argc' to non-Windows ports.
* src/emacs.c: Likewise, but for the definitions.
(init_cmdargs): Move initialization of 'initial_argv' and
'initial_argc' ...
(copy_args) [!WINDOWSNT]: ... to this new function ...
(main): ... and call that in 'main', also initializing
'initial_argv0' before the command-line processing.
* src/emacs.c (Fkill_emacs):
* src/pgtkterm.c (pgtk_term_init):
* src/sysdep.c (emacs_perror):
* src/xterm.c (x_term_init): Use 'initial_argv0' where only that
is required.  (Bug#77389)

(cherry picked from commit e82989757f42e95bf72a2a55de415a8162a55dc3)

6 weeks agoFix 'backward-delete-char-untabify'
Asher Copeland [Wed, 2 Apr 2025 17:55:06 +0000 (10:55 -0700)]
Fix 'backward-delete-char-untabify'

* lisp/simple.el (backward-delete-char-untabify): Fix
behavior when there's an active region.  (Bug#75042)

Copyright-paperwork-exempt: yes
(cherry picked from commit 5665b446b7a5b2f6ff4d4e7ea9b2c91e0e733c92)

6 weeks ago; Fix a typo in last change.
Eli Zaretskii [Sun, 13 Apr 2025 08:13:36 +0000 (11:13 +0300)]
; Fix a typo in last change.

(cherry picked from commit d9ad0c953be1da33c2a7df0d5cae3358bf2b7b1a)

6 weeks agoAdd block-comment-start and block-comment-end to supported modes
Elías Gabriel Pérez [Mon, 31 Mar 2025 23:58:16 +0000 (17:58 -0600)]
Add block-comment-start and block-comment-end to supported modes

* lisp/emacs-lisp/lisp-mode.el (lisp-mode-variables):
Add block-comment-start and block-comment-end from here...
* lisp/newcomment.el (block-comment-start, block-comment-end):...
* lisp/nxml/nxml-mode.el (nxml-mode):...
* lisp/progmodes/c-ts-common.el (c-ts-common-comment-setup):...
* lisp/progmodes/go-ts-mode.el (go-work-ts-mode):...
* lisp/progmodes/js.el (js--mode-setup):...
* lisp/progmodes/json-ts-mode.el (json-ts-mode):...
* lisp/progmodes/lua-ts-mode.el (lua-ts-mode):...
* lisp/progmodes/opascal.el (opascal-mode):...
* lisp/progmodes/pascal.el (pascal-mode):...
* lisp/progmodes/typescript-ts-mode.el (tsx-ts-mode):...
* lisp/textmodes/css-mode.el (css-base-mode, scss-mode):...
* lisp/textmodes/sgml-mode.el (sgml-mode): ... to here.
(Bug#77424)

(cherry picked from commit 4c6b1712a4d67ae40ccc087c7946de4cb14e8cc7)

6 weeks agoFix term.el bug with very short multibyte character chunk
Stephane Zermatten [Mon, 31 Mar 2025 13:41:08 +0000 (16:41 +0300)]
Fix term.el bug with very short multibyte character chunk

Before this change, a chunk containing only a part
of a multibyte character would be discarded and
displayed undecoded on the terminal.
* lisp/term.el (term-emulate-terminal): Fix handling chunks
with part of a multibyte character.  (Bug#77410)

* test/lisp/term-tests.el (term-decode-partial)
(term-undecodable-input): Fix and enhance tests.

Copyright-paperwork-exempt: yes
(cherry picked from commit 158cf528c4aa690be84f9d1c3bc96b750e8b37b3)

6 weeks agoDisable clearing echo-area when 'inhibit-message' is non-nil
Eli Zaretskii [Sun, 13 Apr 2025 07:44:55 +0000 (10:44 +0300)]
Disable clearing echo-area when 'inhibit-message' is non-nil

* src/xdisp.c (clear_message): Don't clear echo-area if
'inhibit-message' is non-nil.

* etc/NEWS:
* doc/lispref/display.texi (Displaying Messages): Document the
above change.  (Bug#77257)

(cherry picked from commit b0d6fe1449fbd32c01d69174f552d6884337a809)

6 weeks ago; * src/editfns.c (Freplace_region_contents): Doc fix (bug#76313).
Eli Zaretskii [Sun, 13 Apr 2025 07:34:46 +0000 (10:34 +0300)]
; * src/editfns.c (Freplace_region_contents): Doc fix (bug#76313).

(cherry picked from commit 7b36d7295e1567f5a1b3725ddbc3a7e85079660c)

6 weeks ago; Fix replacements of old vc-annotate-parent-file
Sean Whitton [Sun, 13 Apr 2025 06:38:27 +0000 (14:38 +0800)]
; Fix replacements of old vc-annotate-parent-file

* lisp/vc/vc-annotate.el (vc-annotate-working-revision)
(vc-annotate-extract-revision-at-line)
(vc-annotate-revision-at-line, vc-annotate-warp-revision)
(vc-annotate-goto-line): Fix extracting the file name from
vc-buffer-overriding-fileset.

(cherry picked from commit 9f6eb6cebb619396821d426de1d2b858b0738285)

6 weeks agolisp/subr.el (setq-local): Make local after evaluating the new value
Stefan Monnier [Sun, 13 Apr 2025 03:00:08 +0000 (23:00 -0400)]
lisp/subr.el (setq-local): Make local after evaluating the new value

In case the evaluation needs to look at the variable's value,
make sure we make it buffer-local afterwards.

(cherry picked from commit f3e0bdf1b98ceeb055065766db53c0c6218840c4)

6 weeks ago(replace-buffer-contents): Mark as obsolete, again.
Stefan Monnier [Sun, 13 Apr 2025 02:58:22 +0000 (22:58 -0400)]
(replace-buffer-contents): Mark as obsolete, again.

* lisp/subr.el (replace-buffer-contents): Mark as obsolete, again.
* src/editfns.c (Freplace_region_contents): Add interactive form.

(cherry picked from commit b99893af1ec373bf96c3326fa6f77740de55e621)

6 weeks ago; Skip commit 356178c8e726cc4c309254b2ba1eae9c41bd2f38
Eshel Yaron [Sun, 13 Apr 2025 20:53:45 +0000 (22:53 +0200)]
; Skip commit 356178c8e726cc4c309254b2ba1eae9c41bd2f38

6 weeks ago; Skip commit bfeb755e03b5cab8f1f234b1a54afbcfd71f9eb2
Eshel Yaron [Sun, 13 Apr 2025 20:53:39 +0000 (22:53 +0200)]
; Skip commit bfeb755e03b5cab8f1f234b1a54afbcfd71f9eb2

6 weeks ago; Fix typo in comment.
Paul Eggert [Sat, 12 Apr 2025 19:30:58 +0000 (12:30 -0700)]
; Fix typo in comment.

(cherry picked from commit 3169aeb421d1f6b2851d0fd8cedb3594071b2cef)

6 weeks agoLimit fontification of "customize" in setopt suggestion
Visuwesh [Mon, 7 Apr 2025 09:46:38 +0000 (15:16 +0530)]
Limit fontification of "customize" in setopt suggestion

* lisp/help-fns.el (help-fns--customize-variable): Limit the
fontification to newly inserted text to avoid spurious
fontification of other instances of the word "customize."

(cherry picked from commit bf7bcbaa3decf976e9409fe9d3fe183a6e8d6920)

6 weeks ago; Skip commit 50531a00b53be7f98a763090331812aae5d3a015
Eshel Yaron [Sun, 13 Apr 2025 20:51:31 +0000 (22:51 +0200)]
; Skip commit 50531a00b53be7f98a763090331812aae5d3a015

6 weeks agoflymake: fall back to margins on text terminals
Spencer Baugh [Tue, 8 Apr 2025 12:43:37 +0000 (08:43 -0400)]
flymake: fall back to margins on text terminals

Previously, flymake-indicator-type defaulted to either fringes
or margins.  But fringes should be used on graphical frames, and
margins on TTY frames.  So default to fringes instead, and
simply fall back to margins automatically on text frames.

* lisp/progmodes/flymake.el (flymake-indicator-type): Set to
fringes.  (bug#77313)
(flymake-mode): Fallback to margins if there's no fringes.
* doc/misc/flymake.texi (Customizable variables): Mention
fallback behavior.
* etc/NEWS: Announce fallback behavior.

(cherry picked from commit 861e7f8b60e4bf076bf5991d25a22b3a012746bd)

6 weeks ago; Skip commit d3c39fb522df50e460940bac10ff489564211d0a
Eshel Yaron [Sun, 13 Apr 2025 20:51:08 +0000 (22:51 +0200)]
; Skip commit d3c39fb522df50e460940bac10ff489564211d0a

6 weeks agoImprove documentation of 'user-emacs-directory'
Eli Zaretskii [Sat, 12 Apr 2025 06:52:04 +0000 (09:52 +0300)]
Improve documentation of 'user-emacs-directory'

* doc/emacs/custom.texi (Find Init): Document the effect of
'user-emacs-directory' on native compilation.  Advise against
changing the value of 'user-emacs-directory' in init files.
(Bug#77745)

(cherry picked from commit 6509cc20a9e000033fe969fb075d6cd37831d1d1)

6 weeks ago; Skip commit 3f06059730679ef6267668e9c1d28ba78534bd56
Eshel Yaron [Sun, 13 Apr 2025 20:51:01 +0000 (22:51 +0200)]
; Skip commit 3f06059730679ef6267668e9c1d28ba78534bd56

6 weeks ago; * doc/emacs/files.texi (Image Mode): Fix a typo (bug#77723).
Eli Zaretskii [Fri, 11 Apr 2025 08:33:26 +0000 (11:33 +0300)]
; * doc/emacs/files.texi (Image Mode): Fix a typo (bug#77723).

(cherry picked from commit e966ff9759ae9fe6aa2e12681bc01315dbe83f71)

6 weeks ago; Fix doc strings of a few Dired commands
Eli Zaretskii [Wed, 9 Apr 2025 11:25:29 +0000 (14:25 +0300)]
; Fix doc strings of a few Dired commands

* lisp/dired-aux.el (dired-do-chown, dired-do-touch)
(dired-do-chgrp, dired-do-chmod): Doc fix.  (Bug#77650)

(cherry picked from commit 378bea99b1a41a38c3915fa65e9adce4ec177197)

6 weeks ago; * CONTRIBUTE: Clarify single-line commit should end with a period.
Jeremy Bryant [Mon, 7 Apr 2025 20:47:39 +0000 (21:47 +0100)]
; * CONTRIBUTE: Clarify single-line commit should end with a period.

(cherry picked from commit 30fb2ac07a74d88908013ea80c62fe6317b3a590)

6 weeks ago; Skip commit 417d14a95eeb7294528d6c2dbba394c31254ff4a
Eshel Yaron [Sun, 13 Apr 2025 20:50:49 +0000 (22:50 +0200)]
; Skip commit 417d14a95eeb7294528d6c2dbba394c31254ff4a

6 weeks ago; Skip commit bb756b195a7bc6b4cf3286d891a38459dac23cde
Eshel Yaron [Sun, 13 Apr 2025 20:50:39 +0000 (22:50 +0200)]
; Skip commit bb756b195a7bc6b4cf3286d891a38459dac23cde

6 weeks ago; Skip commit 684adc07c28ce96b8da1fa2bea31dbf0c8833d92
Eshel Yaron [Sun, 13 Apr 2025 20:50:21 +0000 (22:50 +0200)]
; Skip commit 684adc07c28ce96b8da1fa2bea31dbf0c8833d92

7 weeks agoDrop 'help-form' and associated cruft.
Eshel Yaron [Sun, 13 Apr 2025 06:49:47 +0000 (08:49 +0200)]
Drop 'help-form' and associated cruft.

7 weeks agolisp/savehist.el: Save data, not code.
Eshel Yaron [Sat, 12 Apr 2025 09:15:10 +0000 (11:15 +0200)]
lisp/savehist.el: Save data, not code.

7 weeks agovc-do-async-command: Ellipse later lines in multiline arguments
Sean Whitton [Sat, 12 Apr 2025 02:05:57 +0000 (10:05 +0800)]
vc-do-async-command: Ellipse later lines in multiline arguments

* lisp/emacs-lisp/cl-print.el (cl-print-expand-ellipsis): Bind
inhibit-read-only to t.
* lisp/vc/vc-dispatcher.el (require): Require cl-print at
compile time.
(vc-do-async-command): When printing command arguments that
contain multiple lines, use cl-prin1 with cl-print-string-length
bound in order to ellipse lines other than the first.
Switch the outer quotation marks to single quotation marks.

(cherry picked from commit 3b841700a8bef1d5b16542679458ddfb588ea777)

7 weeks ago; Skip commit cc232bd7a19dcd8b5c77320615a5e93ea0f589b6
Eshel Yaron [Sat, 12 Apr 2025 06:35:12 +0000 (08:35 +0200)]
; Skip commit cc232bd7a19dcd8b5c77320615a5e93ea0f589b6

7 weeks agoRename treesit-toggle-sexp-type to treesit-cycle-sexp-type.
Juri Linkov [Fri, 11 Apr 2025 16:34:29 +0000 (19:34 +0300)]
Rename treesit-toggle-sexp-type to treesit-cycle-sexp-type.

* lisp/treesit.el (treesit-cycle-sexp-type):
Rename from 'treesit-toggle-sexp-type'.  Fix docstring.
https://lists.gnu.org/archive/html/emacs-devel/2025-04/msg00291.html

(cherry picked from commit 695edc5b55bec645fe2df8924513826b202022b6)

7 weeks agoscope.el: Handle 'add-face-text-property'.
Eshel Yaron [Fri, 11 Apr 2025 19:36:36 +0000 (21:36 +0200)]
scope.el: Handle 'add-face-text-property'.

7 weeks agoImprove elisp 'xref-backend-references'.
Eshel Yaron [Fri, 11 Apr 2025 19:36:14 +0000 (21:36 +0200)]
Improve elisp 'xref-backend-references'.

7 weeks ago; Skip commit 53058e15c3313a262d5bc1f0873452779dd2821f
Eshel Yaron [Fri, 11 Apr 2025 11:37:49 +0000 (13:37 +0200)]
; Skip commit 53058e15c3313a262d5bc1f0873452779dd2821f

7 weeks ago; Skip commit 1be9007c0ddec625810148fbee21643db38bad37
Eshel Yaron [Fri, 11 Apr 2025 11:37:45 +0000 (13:37 +0200)]
; Skip commit 1be9007c0ddec625810148fbee21643db38bad37

7 weeks ago; Delete FIXME in vc-print-log
Sean Whitton [Fri, 11 Apr 2025 03:47:32 +0000 (11:47 +0800)]
; Delete FIXME in vc-print-log

This isn't a state-changing operation, indeed, and passing t
here is relevant to dired-vc-deduce-fileset.

(cherry picked from commit 95675b4db0f4a72adfcde00fa24db6f3379f0f2e)

7 weeks agoNew buffer-local vc-buffer-overriding-fileset and vc-buffer-revision
Sean Whitton [Fri, 4 Apr 2025 02:49:57 +0000 (10:49 +0800)]
New buffer-local vc-buffer-overriding-fileset and vc-buffer-revision

* lisp/vc/vc.el (vc-buffer-overriding-fileset)
(vc-buffer-revision): New variables (bug#77529).
(vc-find-revision-save, vc-find-revision-no-save): Set them.
(vc-deduce-fileset): Respect vc-buffer-overriding-fileset.
(vc-print-log): Use vc-buffer-revision as a default working
revision.

* lisp/vc/vc-annotate.el (vc-annotate-parent-file)
(vc-annotate-parent-rev): Delete.
(vc-annotate): Respect vc-buffer-overriding-fileset and
vc-buffer-revision.  This makes 'C-x v g' work from buffers
generated by 'C-x v ~' (bug#5424).
Set the two variables in the newly prepared buffer.
(vc-annotate-working-revision)
(vc-annotate-extract-revision-at-line)
(vc-annotate-revision-at-line, vc-annotate-warp-revision)
(vc-annotate-goto-line):
* lisp/vc/vc-svn.el (vc-svn-annotate-current-time): Use
vc-buffer-overriding-fileset instead of vc-annotate-parent-file,
vc-buffer-revision instead of vc-annotate-parent-rev.
(vc-annotate-parent-rev): Delete declaration.

* etc/NEWS: Announce the new variables.

(cherry picked from commit 60530889c309746def95f32d3dfc117bc4f98444)

7 weeks ago; Skip commit 37164032f690f8a2382f4216c0eb947ce48e2f1f
Eshel Yaron [Fri, 11 Apr 2025 11:37:13 +0000 (13:37 +0200)]
; Skip commit 37164032f690f8a2382f4216c0eb947ce48e2f1f

7 weeks ago; Skip commit c0ea954d0f650227dc518f02a292daeb27cf0c37
Eshel Yaron [Fri, 11 Apr 2025 11:36:59 +0000 (13:36 +0200)]
; Skip commit c0ea954d0f650227dc518f02a292daeb27cf0c37

7 weeks agoFix treesit-forward-sexp/list navigation in the middle of a node.
Juri Linkov [Thu, 10 Apr 2025 16:20:35 +0000 (19:20 +0300)]
Fix treesit-forward-sexp/list navigation in the middle of a node.

* lisp/treesit.el (treesit--forward-list-with-default):
Check the thing 'sexp-default' (bug#76791).

* lisp/progmodes/elixir-ts-mode.el (elixir-ts-mode):
* lisp/progmodes/go-ts-mode.el (go-ts-mode):
* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode):
* lisp/progmodes/sh-script.el (bash-ts-mode):
Add the thing 'sexp-default' to 'treesit-thing-settings'.

(cherry picked from commit ec62674cb959278240a56246cb6a958217dd17c0)

7 weeks agoRename treesit-toggle-sexp-mode to treesit-toggle-sexp-type.
Juri Linkov [Thu, 10 Apr 2025 16:04:12 +0000 (19:04 +0300)]
Rename treesit-toggle-sexp-mode to treesit-toggle-sexp-type.

* lisp/treesit.el (treesit-toggle-sexp-type):
Rename from 'treesit-toggle-sexp-mode'.  Fix docstring.
https://lists.gnu.org/archive/html/emacs-devel/2025-04/msg00273.html

(cherry picked from commit addcab68918a2dbbff997642e1287bd309a741bc)

7 weeks ago; Skip commit cb9aded6d934a384e9281e43f943281bdca5d517
Eshel Yaron [Fri, 11 Apr 2025 11:36:26 +0000 (13:36 +0200)]
; Skip commit cb9aded6d934a384e9281e43f943281bdca5d517

7 weeks ago; Skip commit aa8a5090ec102a7e39d1cc7661c6dffd27dbea67
Eshel Yaron [Fri, 11 Apr 2025 11:36:21 +0000 (13:36 +0200)]
; Skip commit aa8a5090ec102a7e39d1cc7661c6dffd27dbea67

7 weeks ago; Skip commit bb0f84bc0bf77892b05e3720ea623dcd3431325b
Eshel Yaron [Fri, 11 Apr 2025 11:36:18 +0000 (13:36 +0200)]
; Skip commit bb0f84bc0bf77892b05e3720ea623dcd3431325b

7 weeks ago; Skip commit 50947fd51202dbdd86b1cc677722ab2031c5050b
Eshel Yaron [Fri, 11 Apr 2025 11:36:15 +0000 (13:36 +0200)]
; Skip commit 50947fd51202dbdd86b1cc677722ab2031c5050b

7 weeks ago; * test/infra/android/test-controller.el (ats-eval): Correct punctuation.
Po Lu [Thu, 10 Apr 2025 10:19:28 +0000 (18:19 +0800)]
; * test/infra/android/test-controller.el (ats-eval): Correct punctuation.

(cherry picked from commit 426a016d612a539178a913b68fd395d94919af64)

7 weeks ago; Skip commit ddcc87514c72f86d5eac1cb9015e9b08160451b9
Eshel Yaron [Fri, 11 Apr 2025 11:32:52 +0000 (13:32 +0200)]
; Skip commit ddcc87514c72f86d5eac1cb9015e9b08160451b9

7 weeks agoRespond to display configuration updates on Android
Po Lu [Thu, 10 Apr 2025 07:21:15 +0000 (15:21 +0800)]
Respond to display configuration updates on Android

* java/org/gnu/emacs/EmacsNative.java
(sendConfigurationChanged): Declare function.

* java/org/gnu/emacs/EmacsSdk7FontDriver.java (Sdk7FontEntity)
(Sdk7FontObject): Do not access `metrics' field deleted from
`EmacsService'.

* java/org/gnu/emacs/EmacsService.java (EmacsService)
<metrics, resources>: Delete fields.
<dpiX, dpiY, dpiScaled>: New fields.
(onCreate): Adjust accordingly.  Record current display metrics
for subsequent comparison.
(onConfigurationChanged): New function.

* lisp/dynamic-setting.el (font-setting-change-default-font):
Enable on systems where font-get-system-font is not defined if
invoked with SET-FONT nil.

* src/android.c (sendConfigurationChanged): New function.

* src/androidgui.h (ANDROID_CONFIGURATION_CHANGED): New enumerator.
(struct android_configuration_changed): New structure.
(union android_event): Add `config' member.

* src/androidterm.c (handle_one_android_event): Handle
ANDROID_CONFIGURATION_CHANGED events.
(syms_of_androidterm): Define Qfont_render, and
Qdynamic_setting.  Provide the latter.

(cherry picked from commit 884ede7c959b1331e1ede0b1b80f01a06c048bf5)