]> git.eshelyaron.com Git - emacs.git/log
emacs.git
2 weeks agoMake 'electric-pair-mode' buffer-local
Eshel Yaron [Fri, 21 Feb 2025 17:30:55 +0000 (18:30 +0100)]
Make 'electric-pair-mode' buffer-local

2 weeks ago; Skip commit 5d5736ca75397ce0b3ab0d58e40b0489f876618a
Eshel Yaron [Thu, 20 Feb 2025 21:44:44 +0000 (22:44 +0100)]
; Skip commit 5d5736ca75397ce0b3ab0d58e40b0489f876618a

2 weeks ago* src/fns.c (Fmapconcat): Faster fast-path condition
Mattias Engdegård [Wed, 19 Feb 2025 18:57:16 +0000 (19:57 +0100)]
* src/fns.c (Fmapconcat): Faster fast-path condition

(cherry picked from commit b481fbe92f793bae2ccd9d2d4efdaf0549390a41)

2 weeks ago; Spelling fix in comment.
Paul Eggert [Thu, 20 Feb 2025 17:42:33 +0000 (09:42 -0800)]
; Spelling fix in comment.

(cherry picked from commit 241e8e5fcf8b4624dc39890a8749f7574a8a6398)

2 weeks ago; Skip commit 57c1df8baed6692983db77c10eab4b2c2ad00ce3
Eshel Yaron [Thu, 20 Feb 2025 21:44:13 +0000 (22:44 +0100)]
; Skip commit 57c1df8baed6692983db77c10eab4b2c2ad00ce3

2 weeks agoFix signal when first enabling Custom-mode on non-GUI builds
Po Lu [Thu, 20 Feb 2025 12:36:47 +0000 (20:36 +0800)]
Fix signal when first enabling Custom-mode on non-GUI builds

* lisp/cus-edit.el (Custom-mode): Define tool-bar-map if not
bound and elaborate why this must be arranged.

(cherry picked from commit afd088bd608c0c27f676bbc34a5d596df3db14a1)

2 weeks agoFix set-time-zone-rule on DJGPP
Po Lu [Thu, 20 Feb 2025 11:46:40 +0000 (19:46 +0800)]
Fix set-time-zone-rule on DJGPP

* lisp/loadup.el ("tooltip"): Load even on MS-DOS.

* src/timefns.c (tzvalbuf): Don't define on MS-DOS.
(emacs_getenv_TZ, emacs_setenv_TZ) [MSDOS]: Call getenv and
putenv rather than overwrite existing environment storage to
update DJGPP's environment modification counter.

(cherry picked from commit 1c49cfc711c61e683bda8d5b2546b586e5168706)

2 weeks ago; * src/pdumper.c (Fdump_emacs_portable): Fix typo in comment.
Po Lu [Thu, 20 Feb 2025 06:27:03 +0000 (14:27 +0800)]
; * src/pdumper.c (Fdump_emacs_portable): Fix typo in comment.

(cherry picked from commit b65971b2c06d34c268b2b0280056e478dbc31586)

2 weeks ago; Skip commit 1468190e11b7eed49a024ffbff3da2bca21862bc
Eshel Yaron [Thu, 20 Feb 2025 21:43:39 +0000 (22:43 +0100)]
; Skip commit 1468190e11b7eed49a024ffbff3da2bca21862bc

2 weeks agoPort to modern GCC and pdumper on MS-DOS
Po Lu [Thu, 20 Feb 2025 06:04:59 +0000 (14:04 +0800)]
Port to modern GCC and pdumper on MS-DOS

* config.bat (mvOk): Protoize.
(djgppOk): Include sys/version.h for _DJGPP_MINOR.

* lisp/loadup.el: If system-type is ms-dos, dump bootstrap-emacs
as b-emacs.dmp.

* msdos/INSTALL: Document new versions of tools that have been
verified successfully to compile Emacs.

* msdos/emacs.djl: New linker script that arranges to link
symbols in `.subrs' in a contiguous part of data, as the DJGPP
runtime appears to treat any non-data and non-text section as
allocatable.

* msdos/mainmake.v2 (install): Install emacs.dmp alongside
emacs.exe.

* msdos/sed1v2.inp (CFLAGS): Define to -O2 -g3.
(LDFLAGS): Provide the said linker script.
(HAVE_PDUMPER): Define to yes.
(UNEXEC_OBJ, PAXCTL_dumped, PAXCTL_notdumped): Delete.
(DUMPING): Set to pdumper.
(MAKE_PDUMPER_FINGERPRINT): Don't erase this variable.
Don't stubify or set minstack.  Remove native-comp specific
directives.  Don't remove temacs prior to copying and replace
`pdmp' extension with DOS-conformant `dmp'.

* msdos/sed2v2.inp (HAVE_UNEXEC): Remove definition.
(HAVE_PDUMPER): Define to 1.

* msdos/sed6.inp (top_srcdir): Define appropriately.

* msdos/sedlibmk.inp (HAVE_BLKCNT_T): Define to 1.

* src/emacs.c (load_pdump) [MSDOS]: Use `dmp' suffix.

* src/pdumper.c (Fdump_emacs_portable) [MSDOS]: Replace ".pdmp"
suffixes with ".dmp".

(cherry picked from commit c22957c4bf7dd25857a44946169c4818996a49d9)

2 weeks agoPrefer defvar-keymap in conf-mode.el
Stefan Kangas [Wed, 19 Feb 2025 22:36:07 +0000 (23:36 +0100)]
Prefer defvar-keymap in conf-mode.el

* lisp/textmodes/conf-mode.el (conf-mode-map): Prefer defvar-keymap.

(cherry picked from commit 89f9377139c336dd646335352b0c7480c7e19c4a)

2 weeks agoSimplify Tramp's find-executable
Michael Albinus [Wed, 19 Feb 2025 18:38:25 +0000 (19:38 +0100)]
Simplify Tramp's find-executable

* lisp/net/tramp-cache.el (with-tramp-saved-connection-property):
Fix typo.

* lisp/net/tramp-compat.el: Add TODO.

* lisp/net/tramp-sh.el (tramp-find-executable): Simplify, using
"type -P ...".
(tramp-set-remote-path): Better handling of superlong $PATH.
(tramp-get-remote-path): Adapt/use connection properties.

* test/lisp/net/tramp-tests.el (tramp--test-enabled)
(tramp-test03-file-name-host-rules): Don't wrap
`tramp-cleanup-connection' with `ignore-errors'.

(cherry picked from commit ec34bccfee68a521e7a98ce8dce9325a146d095b)

2 weeks agoFix remaining Android bugs reported over the past months
Po Lu [Wed, 19 Feb 2025 12:40:12 +0000 (20:40 +0800)]
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.

(cherry picked from commit ded77feffface0c167edacf0d807273f3d4878db)

2 weeks ago* lisp/subr.el (read-key): Add 'tab-line' (bug#76408).
Jared Finder [Wed, 19 Feb 2025 07:41:44 +0000 (09:41 +0200)]
* lisp/subr.el (read-key): Add 'tab-line' (bug#76408).

(cherry picked from commit 0c8abe8bb5072c46a93585cb325c249f85f3d9c2)

2 weeks agoDon't call x-popup-function for non-tty frames
Gerd Möllmann [Wed, 19 Feb 2025 07:33:32 +0000 (08:33 +0100)]
Don't call x-popup-function for non-tty frames

* src/menu.c (x_popup_menu_1): Don't call x-popup-function for non-tty
frames
(syms_of_menu): Remove Qx_popup_menu_function because unused, extend doc
string of x-popup-menu-function.

(cherry picked from commit 23bf94a0111474419ca84145c8ede95c6915bd35)

2 weeks agoProperly move existing tooltips on Android
Po Lu [Wed, 19 Feb 2025 07:34:51 +0000 (15:34 +0800)]
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.

(cherry picked from commit e97be722d392056b6ef9e47664273ee2ca7df374)

2 weeks ago; Skip commit 0cf3d3415224204c82efda373ffc7055163b1893
Eshel Yaron [Thu, 20 Feb 2025 21:43:06 +0000 (22:43 +0100)]
; Skip commit 0cf3d3415224204c82efda373ffc7055163b1893

2 weeks agoHandle nil top frame (bug#76410)
Gerd Möllmann [Wed, 19 Feb 2025 07:05:56 +0000 (08:05 +0100)]
Handle nil top frame (bug#76410)

* src/frame.c (do_switch_frame): Don't assume that top_frame is always a
frame, it can be nil.

(cherry picked from commit 1194ebe3a71f97b0ce7c8dcc4edaf7b0f81fdc6f)

2 weeks ago(json-pretty-print): Rework a bit
Stefan Monnier [Wed, 19 Feb 2025 03:27:08 +0000 (22:27 -0500)]
(json-pretty-print): Rework a bit

* lisp/json.el (json-pretty-print): Call 'replace-buffer-contents'
separately for each json object rather than once at the end, so
its work is easier.  Use 'json--print' rather than 'json-encode' so as
to avoid creating yet more temp buffers.

(cherry picked from commit 9143c18ae4752cef8465579dcd713db2032ab045)

2 weeks ago; Skip commit bb45d35ea7db5dc93a7856dccf14c01f01bd95fe
Eshel Yaron [Thu, 20 Feb 2025 21:42:44 +0000 (22:42 +0100)]
; Skip commit bb45d35ea7db5dc93a7856dccf14c01f01bd95fe

2 weeks agoDon't insist on the presence of a mouse in strokes-mode
Po Lu [Wed, 19 Feb 2025 02:13:00 +0000 (10:13 +0800)]
Don't insist on the presence of a mouse in strokes-mode

* lisp/strokes.el (strokes-mode): Don't test `display-mouse-p',
as the presence of a mouse may vary over the course of an Emacs
session.

(cherry picked from commit d05894f82d90c6d739aa3d424651fda2c86f68ec)

2 weeks ago; Skip commit 450966223679d51d78cd8bbdba70bda684dd3a36
Eshel Yaron [Thu, 20 Feb 2025 21:42:37 +0000 (22:42 +0100)]
; Skip commit 450966223679d51d78cd8bbdba70bda684dd3a36

2 weeks ago; Skip commit 4faade9f844db5dc09f2805c0f07376663402e41
Eshel Yaron [Thu, 20 Feb 2025 21:42:16 +0000 (22:42 +0100)]
; Skip commit 4faade9f844db5dc09f2805c0f07376663402e41

2 weeks agoMake cl-locally obsolete
Stefan Kangas [Tue, 18 Feb 2025 21:29:40 +0000 (22:29 +0100)]
Make cl-locally obsolete

* doc/misc/cl.texi (Declarations): Don't document cl-locally.
* lisp/emacs-lisp/cl-macs.el (cl-locally): Make into obsolete
function alias for progn.

(cherry picked from commit 4c4f907bad1ad616dda6e5f5eec0b78ebea9f1c4)

2 weeks ago; Skip commit ccaa0be8e71d70adeb6c881c8ef0e8a14054851c
Eshel Yaron [Thu, 20 Feb 2025 21:42:09 +0000 (22:42 +0100)]
; Skip commit ccaa0be8e71d70adeb6c881c8ef0e8a14054851c

2 weeks ago; Skip commit b5410cbea2ef8dab973430539649b8d424350925
Eshel Yaron [Thu, 20 Feb 2025 21:42:05 +0000 (22:42 +0100)]
; Skip commit b5410cbea2ef8dab973430539649b8d424350925

2 weeks ago; Fix typos
Stefan Kangas [Mon, 27 Jan 2025 05:46:01 +0000 (06:46 +0100)]
; Fix typos

(cherry picked from commit be7625cae7303a3c9adc810a23c15e8d9c07eebe)

2 weeks ago; Skip commit d447cd9fcc0408e36705bfddd3150fa718fa4b83
Eshel Yaron [Thu, 20 Feb 2025 21:41:37 +0000 (22:41 +0100)]
; Skip commit d447cd9fcc0408e36705bfddd3150fa718fa4b83

2 weeks ago; Skip commit 5dc2a573750115ecb450750a16c4d59e542391e6
Eshel Yaron [Thu, 20 Feb 2025 21:41:31 +0000 (22:41 +0100)]
; Skip commit 5dc2a573750115ecb450750a16c4d59e542391e6

2 weeks agoUse 'compf' in a few more places.
Eshel Yaron [Thu, 20 Feb 2025 20:58:10 +0000 (21:58 +0100)]
Use 'compf' in a few more places.

2 weeks ago(compf): Add Edebug spec
Eshel Yaron [Thu, 20 Feb 2025 20:57:45 +0000 (21:57 +0100)]
(compf): Add Edebug spec

2 weeks ago* lisp/textmodes/markdown-ts-mode.el: Cleanup.
Eshel Yaron [Thu, 20 Feb 2025 20:57:25 +0000 (21:57 +0100)]
* lisp/textmodes/markdown-ts-mode.el: Cleanup.

3 weeks agoFix 'called-interactively-p'
Eshel Yaron [Thu, 20 Feb 2025 13:01:10 +0000 (14:01 +0100)]
Fix 'called-interactively-p'

3 weeks agoNew macro 'compf'
Eshel Yaron [Wed, 19 Feb 2025 15:47:16 +0000 (16:47 +0100)]
New macro 'compf'

3 weeks ago; Fix copyright year in last commit
Stefan Kangas [Tue, 18 Feb 2025 20:52:33 +0000 (21:52 +0100)]
; Fix copyright year in last commit

(cherry picked from commit ef34303eaf98e0a8a041c741715c741f0a01fd77)

3 weeks agoAdd markdown-ts-mode
Rahul Martim Juliato [Sat, 20 Apr 2024 02:21:20 +0000 (23:21 -0300)]
Add markdown-ts-mode

* lisp/textmodes/markdown-ts-mode.el: New file.
Ref: https://lists.gnu.org/r/emacs-devel/2024-06/msg01061.html

(cherry picked from commit a102dcebb7d10275cc3818f47cd042ddd27868ff)

3 weeks ago(lexical-binding): Allow changing the default value (bug#74145)
Stefan Monnier [Tue, 18 Feb 2025 20:37:50 +0000 (15:37 -0500)]
(lexical-binding): Allow changing the default value (bug#74145)

* lisp/loadup.el: Preserve (default-toplevel-value 'lexical-binding).

* src/lread.c (Fload, Feval_buffer): Obey (default-toplevel-value
'lexical-binding).

* doc/lispintro/emacs-lisp-intro.texi (Lexical vs Dynamic Binding
Example): Use the lexical dialect also for the dynamic
scoping example.
* doc/lispref/edebug.texi (Edebug Eval): Remove long-obsolete mention
of Edebug support for `lexical-let`.

(cherry picked from commit d685d21e8ae0cee566420d4dd68586f018b2ce0b)

3 weeks ago; * .mailmap: Change my entries.
Gerd Möllmann [Tue, 18 Feb 2025 20:27:03 +0000 (21:27 +0100)]
; * .mailmap: Change my entries.

(cherry picked from commit 790c2f7c1c8c947b286c09525fc5a0425004a1f6)

3 weeks agoDisable PyREPL in Python shell
Liu Hui [Tue, 18 Feb 2025 09:52:36 +0000 (17:52 +0800)]
Disable PyREPL in Python shell

The new default REPL (PyREPL) in Python 3.13 is incompatible
with Python shell and displays a warning message when reverting
to the old basic REPL.

* lisp/progmodes/python.el
(python-shell--calculate-process-environment): Use the basic
REPL.  (Bug#76205)

(cherry picked from commit db8af88222bbf06948622d2b4fc4d27b73350b83)

3 weeks agoImprove completion in IPython/Python 3.13
kobarity [Sun, 16 Feb 2025 10:07:04 +0000 (19:07 +0900)]
Improve completion in IPython/Python 3.13

IPython/Python 3.13 indirectly imports rlcompleter, and the
completer is set up to reference rlcompleter.__main__.
However, this rlcompleter.__main__ is different from the
__main__ in the REPL execution.  Therefore, this completer
cannot correctly complete the REPL globals.  To address this
issue, we override rlcompleter.__main__ with __main__ only in
the case of IPython.

* lisp/progmodes/python.el (python-shell-completion-native-setup):
Modify __PYTHON_EL_native_completion_setup().  (Bug#76205)

(cherry picked from commit a75f4449fa2aceab54f28c5ef46f82225376c2a4)

3 weeks agoPrefer defvar-keymap in tcl.el
Stefan Kangas [Tue, 18 Feb 2025 05:11:24 +0000 (06:11 +0100)]
Prefer defvar-keymap in tcl.el

* lisp/progmodes/tcl.el (tcl-mode-map, inferior-tcl-mode-map): Prefer
defvar-keymap.

(cherry picked from commit c180966b313c87fd8a3a48218340b48ac0b933f2)

3 weeks agoPrefer defvar-keymap in pascal.el
Stefan Kangas [Tue, 18 Feb 2025 05:06:37 +0000 (06:06 +0100)]
Prefer defvar-keymap in pascal.el

* lisp/progmodes/pascal.el (pascal-mode-map, pascal-outline-map):
Prefer defvar-keymap.

(cherry picked from commit 697e7c321144f1d91bcd8f6ed26c78968a156186)

3 weeks agoPrefer defvar-keymap in meta-mode.el
Stefan Kangas [Tue, 18 Feb 2025 05:03:04 +0000 (06:03 +0100)]
Prefer defvar-keymap in meta-mode.el

* lisp/progmodes/meta-mode.el (meta-common-mode-map): Prefer
defvar-keymap.

(cherry picked from commit 941ba65d1e0b9a42deeff25d793db21cc56c94e0)

3 weeks agoPrefer plusp to open-coding it in image-dired
Stefan Kangas [Tue, 18 Feb 2025 04:56:02 +0000 (05:56 +0100)]
Prefer plusp to open-coding it in image-dired

* lisp/image/image-dired.el (image-dired-display-thumbs)
(image-dired-forward-image, image-dired-slideshow-start)
(image-dired-line-up-interactive): Prefer plusp to open-coding it.

(cherry picked from commit 93206cd138ff01d9c2a56e52dd0e5edd8e386ec0)

3 weeks ago; * src/menu.c (x_popup_menu_1): Fix typo.
Gerd Möllmann [Tue, 18 Feb 2025 15:05:38 +0000 (16:05 +0100)]
; * src/menu.c (x_popup_menu_1): Fix typo.

(cherry picked from commit 4d3a6189418d9fe6b743ce3924a5eead6638dccb)

3 weeks ago(replace_range): Delete last arg, always the negation of the first bool
Stefan Monnier [Tue, 18 Feb 2025 15:05:34 +0000 (10:05 -0500)]
(replace_range): Delete last arg, always the negation of the first bool

* src/insdel.c (replace_range): Merge last arg, with `prepare`.
Rename `prepare` to `run-mode-hooks`.
* src/lisp.h (replace_range): Adjust accordingly.
* src/editfns.c (Ftranslate_region_internal):
* src/cmds.c (internal_self_insert):
* src/search.c (Freplace_match): Adjust callers.

(cherry picked from commit 41624d94cec98c1239c4fc9bb624e55ce0606068)

3 weeks agosrc/search.c (Freplace_match): Let `replace_range` call the a-c-f
Stefan Monnier [Tue, 18 Feb 2025 14:54:48 +0000 (09:54 -0500)]
src/search.c (Freplace_match): Let `replace_range` call the a-c-f

(cherry picked from commit 19f5ccbf39383f9744b9513166a2d2e7ccb85e1c)

3 weeks ago* src/editfns.c (Fsubst_char_in_region): Delete left-over code
Stefan Monnier [Tue, 18 Feb 2025 14:52:35 +0000 (09:52 -0500)]
* src/editfns.c (Fsubst_char_in_region): Delete left-over code

This code was missed back in 2000 (commit 1b16afa45bb6).

(cherry picked from commit 9854103b52a666db258bd10e4cd7f1291fb3bd6e)

3 weeks ago* src/menu.c (x_popup_menu_1): Use calln.
Gerd Möllmann [Tue, 18 Feb 2025 14:41:07 +0000 (15:41 +0100)]
* src/menu.c (x_popup_menu_1): Use calln.

(cherry picked from commit bf067daf0df9441ef94ffe6ba2b2d1add3a4ee39)

3 weeks ago; Skip commit c54d6680d3622802709e79d2daac28218f65fb97
Eshel Yaron [Tue, 18 Feb 2025 21:33:19 +0000 (22:33 +0100)]
; Skip commit c54d6680d3622802709e79d2daac28218f65fb97

3 weeks ago* src/menu.c (x_popup_menu_1): Fix coding style.
Po Lu [Tue, 18 Feb 2025 13:00:08 +0000 (21:00 +0800)]
* src/menu.c (x_popup_menu_1): Fix coding style.

(cherry picked from commit 37fad0483025b0eeaa33c5418b07bf6a14937ebf)

3 weeks agoDon't access overriding-text-conversion-style when unbound
Po Lu [Tue, 18 Feb 2025 12:58:32 +0000 (20:58 +0800)]
Don't access overriding-text-conversion-style when unbound

* lisp/replace.el (perform-replace): Don't access
overriding-text-conversion-style when unbound, and also avoid
needlessly polluting this symbol with a binding.  (bug#76371)

(cherry picked from commit 0cf3823463e9a52a6fbdc5e02555381cd6e0f5b5)

3 weeks agoAdd x-popup-menu-function
Gerd Möllmann [Mon, 10 Feb 2025 06:55:43 +0000 (07:55 +0100)]
Add x-popup-menu-function

* src/menu.c (x_popup_menu_1): If non-nil call x-popup-menu-function.
(syms_of_menu): DEFSYM x-popup-menu-function, DEFVAR_LISP it.

(cherry picked from commit 17bf6b9efe5c40dfa92fa5ec64a99162304395cd)

3 weeks agoHide cursor based on tty frame's `cursor-type'
Gerd Möllmann [Sun, 16 Feb 2025 16:27:58 +0000 (17:27 +0100)]
Hide cursor based on tty frame's `cursor-type'

* src/dispnew.c (terminal_cursor_magic): if selected-frame has
`(cursor-type . nil)' parameter.

(cherry picked from commit a51cfbbd15889ce2af59b0b1bffac8735f70f6b9)

3 weeks agoAdd MPD stats viewer to 'mpc' (Bug#76350)
john muhl [Tue, 5 Nov 2024 16:24:28 +0000 (10:24 -0600)]
Add MPD stats viewer to 'mpc' (Bug#76350)

* lisp/mpc.el (mpc-server-stats): New command.
(mpc-mode-menu): Add menu item.
(mpc--server-stats-date, mpc--server-stats-duration):
New variable.
(mpc--server-stats-date, mpc--server-stats-duration):
(mpc--server-stats-format): New function.
(mpc-song-viewer-value, mpc-song-viewer-tag):
(mpc-song-viewer-empty): Remove face.
(mpc-table-value, mpc-table-key, mpc-table-empty): New face.
(mpc-describe-song): Use new table face names.

(cherry picked from commit df93e53a1c648654d8b128a5955bb4ff0229b041)

3 weeks agoImprove autoconf-mode macro detection
Basil L. Contovounesios [Wed, 29 Jan 2025 13:05:39 +0000 (14:05 +0100)]
Improve autoconf-mode macro detection

* doc/lispref/modes.texi (Search-based Fontification): Fix
indentation of (MATCHER . FACESPEC) example.
* doc/misc/cc-mode.texi (Performance Issues): Index
defun-prompt-regexp under variables, not functions.

* lisp/progmodes/autoconf.el (autoconf--symbol, autoconf--macro):
New rx definitions.
(autoconf-definition-regexp): Use an optional second capture group
to indicate a function rather than variable definition.  Detect
AC_DEFINE defining a function-like CPP macro.  Skip more shell
syntax such as variable ${} expansion and command `` substitution in
AC_DEFINE_UNQUOTED variable.  Match AH_VERBATIM, AM_CONDITIONAL, and
AM_MISSING_PROG as defining variables, and AC_DEFUN, AC_DEFUN_ONCE,
AU_ALIAS, and AU_DEFUN as defining functions.  Document first
capture group in docstring.
(autoconf-font-lock-keywords): Use autoconf--macro to match more
Autoconf macros, such as those defined in the Autoconf Archive and
Gnulib.  Reserve font-lock-function-name-face for function
definitions as determined by autoconf-definition-regexp, and use
font-lock-variable-name-face for the rest instead.  Use Font Lock
face symbols directly in place of their corresponding variable.
Fontify M4 changequote primitive only as a standalone symbol.
(autoconf-imenu-generic-expression): Add commentary mentioning new
submenu possibility.
(autoconf-current-defun-function): Update docstring accuracy.
Replace line-end-position with pos-eol since there are no fields.
(autoconf-mode): Define defun-prompt-regexp in terms of
autoconf--macro to support more toplevel macros, such as those
defined in Autoheader, M4sh, etc.  Set
open-paren-in-column-0-is-defun-start to nil to avoid false
positives when an Autoconf quote character is in column zero.

* test/lisp/progmodes/autoconf-resources/configure.ac: New file.
* test/lisp/progmodes/autoconf-tests.el
(autoconf-tests-current-defun-function-define)
(autoconf-tests-current-defun-function-subst): Replace character
motion with search.
(autoconf-tests-autoconf-mode-comment-syntax): Ditto.  Test both dnl
and # comments.  Use syntax-ppss-context.
(autoconf-tests-font-lock): New test.

(cherry picked from commit 2e3cf73e055be69d42a6f84436d400caf0997abb)

3 weeks agoAdd file completion for git apply, am to pcomplete
Antero Mejr [Tue, 28 Jan 2025 18:39:10 +0000 (13:39 -0500)]
Add file completion for git apply, am to pcomplete

* lisp/pcmpl-git.el (pcomplete/git): Add an "apply" and "am" clause to
complete all files.  (Bug#76356)

(cherry picked from commit 9cedb434ee390a30a690e9f979428c5735cb88e5)

3 weeks agoPrefer oddp/evenp to open-coding in a few more cases
Stefan Kangas [Mon, 17 Feb 2025 22:00:54 +0000 (23:00 +0100)]
Prefer oddp/evenp to open-coding in a few more cases

* lisp/arc-mode.el (archive-zip-summarize):
* lisp/cus-edit.el (setopt):
* lisp/isearch.el (isearch-backslash):
* lisp/simple.el (blink-paren-post-self-insert-function):
* lisp/subr.el (setq-local, buffer-local-set-state):
* lisp/term.el (term-within-quotes):
* test/src/data-tests.el (test-bool-vector-bv-from-hex-string): Use
oddp/evenp instead of open-coding them.
Reported by Pip Cet <pipcet@protonmail.com>.

(cherry picked from commit 515542b653c438014eda844eacc96cf23cfaaa2d)

3 weeks agoPrefer plusp/minusp to open-coding them in subr.el
Stefan Kangas [Mon, 17 Feb 2025 21:48:47 +0000 (22:48 +0100)]
Prefer plusp/minusp to open-coding them in subr.el

* lisp/subr.el (lsh, nbutlast, number-sequence, add-to-history)
(read-char-from-minibuffer, split-string, subst-char-in-string)
(forward-whitespace, forward-symbol, forward-same-syntax)
(progress-reporter-do-update, version-list-<): Prefer plusp/minusp to
open-coding them.

(cherry picked from commit 8a7c1a31ac0a61384661878e9f7f7e77ada34ade)

3 weeks agoPrefer plusp/minusp to cl-plusp/cl-minusp
Stefan Kangas [Mon, 17 Feb 2025 21:04:41 +0000 (22:04 +0100)]
Prefer plusp/minusp to cl-plusp/cl-minusp

* lisp/dired.el (dired--move-to-next-line):
* lisp/emacs-lisp/ert.el (ert-run-tests-batch, ert-face-for-stats):
* lisp/emacs-lisp/pp.el (pp--format-definition):
* lisp/gnus/gnus-icalendar.el (gnus-icalendar-event--org-timestamp):
* lisp/ibuffer.el (ibuffer-compile-format, ibuffer--format-title)
(ibuffer--format-summary):
* lisp/image-mode.el (image-transform-set-percent):
* lisp/international/emoji.el (emoji--list-generate, emoji--read-emoji):
* lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation)
(ebrowse-set-member-buffer-column-width)
(ebrowse-cyclic-display-next/previous-member-list)
(ebrowse-draw-member-short-fn)
(ebrowse-switch-member-buffer-to-sibling-class, ebrowse-push-position):
* lisp/textmodes/dns-mode.el (dns-mode-reverse-and-expand-ipv6):
* test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp-tests--not-writable-directory)
(bytecomp-tests--dest-mountpoint)
(bytecomp-tests--target-file-no-directory):
* test/lisp/emacs-lisp/cl-seq-tests.el (cl-member-if-test)
(cl-member-if-not-test, cl-assoc-if-not-test, cl-rassoc-if-test)
(cl-rassoc-if-not-test):
* test/src/emacs-module-tests.el (mod-test-add-nanosecond/valid):
Prefer plusp and minusp to cl-plusp and cl-minusp.

(cherry picked from commit 83bc811f7fad00b9b4ed3e4ffd67a96226991ca3)

3 weeks agoNew functions plusp and minusp
Stefan Kangas [Mon, 17 Feb 2025 20:58:53 +0000 (21:58 +0100)]
New functions plusp and minusp

* lisp/emacs-lisp/cl-lib.el (cl-plusp, cl-minusp): Move from here...
* lisp/subr.el (plusp, minusp): ...to here.  Make old names into
aliases, documented as deprecated.  Add type declarations.  Change from
defsubst to regular functions with compiler macros.
* lisp/obsolete/cl.el: Don't alias plusp and minusp.

* test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-test-plusp)
(cl-lib-test-minusp): Move tests from here...
* test/lisp/subr-tests.el (subr-test-plusp, subr-test-minusp):
...to here.

* doc/lispref/numbers.texi (Predicates on Numbers): Document plusp
and minusp.
* doc/misc/cl.texi (Predicates on Numbers): Delete cl-plusp and
cl-minusp.
* lisp/emacs-lisp/shortdoc.el (number): Document plusp and minusp
instead of cl-plusp and cl-minusp.

(cherry picked from commit afbf932106fdd1043b0debe9fc9134e031e4c9a6)

3 weeks ago; Update comments for mhtml-ts-mode--treesit-indent-rules
Yuan Fu [Mon, 17 Feb 2025 21:41:30 +0000 (13:41 -0800)]
; Update comments for mhtml-ts-mode--treesit-indent-rules

* lisp/textmodes/mhtml-ts-mode.el:
(mhtml-ts-mode--treesit-indent-rules): Update comments.

(cherry picked from commit 1d27028df803e4dc1c063db5593222311838e051)

3 weeks agoRename treesit-add-simple-indent-rules
Yuan Fu [Mon, 17 Feb 2025 21:29:46 +0000 (13:29 -0800)]
Rename treesit-add-simple-indent-rules

* lisp/treesit.el (treesit-add-simple-indent-rules): Rename to
treesit-simple-indent-add-rules.
* etc/NEWS: Update.
* test/src/treesit-tests.el:
(treesit-test-simple-indent-add-rules): Update accordingly.

(cherry picked from commit 237afc82b2ed147fe6b1773df303c448ded9679b)

3 weeks agoRename treesit-simple-indent-modify-rules and fix docstring
Yuan Fu [Mon, 17 Feb 2025 21:27:52 +0000 (13:27 -0800)]
Rename treesit-simple-indent-modify-rules and fix docstring

* lisp/treesit.el (treesit-simple-indent-modify-rules): Rename
and fix docstring.  It should be matcher, not anchor.  Also
reword a little bit.
* etc/NEWS: Update.
* lisp/textmodes/mhtml-ts-mode.el:
(mhtml-ts-mode--treesit-indent-rules): Update accordingly.

(cherry picked from commit 928bad93609773ca5e9c94cf6e8f24e895e263d3)

3 weeks agoMake mhtml-ts-mode--treesit-indent-rules a function
Yuan Fu [Mon, 17 Feb 2025 21:18:15 +0000 (13:18 -0800)]
Make mhtml-ts-mode--treesit-indent-rules a function

* lisp/textmodes/mhtml-ts-mode.el:
(mhtml-ts-mode--treesit-indent-rules): Turn into a function.
(mhtml-ts-mode): Update accordingly.

(cherry picked from commit 77c7ba7facf6e7ee65e74aba71ce67723ba14ff7)

3 weeks agoTest vc-git-dir-extra-headers directly (bug#76187)
Kévin Le Gouguec [Thu, 13 Feb 2025 22:52:06 +0000 (23:52 +0100)]
Test vc-git-dir-extra-headers directly (bug#76187)

* test/lisp/vc/vc-git-tests.el (vc-git-test--run): Make sure to
log output from failing Git commands.
(vc-git-test--dir-headers): Stop bothering with vc-dir
internals and just invoke the branch-munging and
header-formatting code we mean to test.
(vc-git-test-dir-branch-headers): Stop invoking vc-dir; just set
default-directory to be able to pass it to the backend function.

(cherry picked from commit 15d2fc6498db433131bd4364aae1d508a12bd925)

3 weeks agoFix compilation errors due to insufficient compiler safety (bug#63288)
Pip Cet [Mon, 17 Feb 2025 15:21:16 +0000 (15:21 +0000)]
Fix compilation errors due to insufficient compiler safety (bug#63288)

The default safety level is 1.  Restoring the default safety level to
1 after it was temporarily 0 should reset byte-compile-delete-errors
to nil, its default level.  Failing to do that resulted in
miscompilation of code in highly-parallel builds.

* lisp/emacs-lisp/cl-macs.el (cl--do-proclaim): Change
'byte-compile-delete-errors' to become t only at 'safety' level 0, not
levels 1 or 2.

(cherry picked from commit 53a5dada413662389a17c551a00d215e51f5049f)

3 weeks agoPrefer '(oddp A)' to '(= 1 (logand A 1))'
Stefan Kangas [Mon, 17 Feb 2025 18:33:56 +0000 (19:33 +0100)]
Prefer '(oddp A)' to '(= 1 (logand A 1))'

* lisp/calendar/todo-mode.el (todo-padded-string):
* lisp/emacs-lisp/gv.el (setf):
* lisp/emacs-lisp/macroexp.el (macroexp--expand-all):
* lisp/hexl.el (hexl-insert-hex-string):
* lisp/play/gamegrid.el (gamegrid-xbm):
* lisp/play/hanoi.el (hanoi-internal):
* lisp/progmodes/ebnf2ps.el (ebnf-end-of-string):
* lisp/progmodes/elisp-mode.el (elisp--highlight-function-argument):
* lisp/progmodes/ruby-mode.el (ruby-backward-sexp):
* lisp/ps-print.el (ps-print-page-p):
(ps-print-sheet-p): Prefer '(oddp A)' to '(= 1 (logand A 1))' and
variations thereof.

(cherry picked from commit fd5dbea21b8982cff8d3ae774b0e68c077a4ec89)

3 weeks agoPrefer '(evenp A)' to '(= 0 (logand A 1))'
Stefan Kangas [Mon, 17 Feb 2025 18:30:44 +0000 (19:30 +0100)]
Prefer '(evenp A)' to '(= 0 (logand A 1))'

* lisp/calc/calc-arith.el (calcFunc-dint):
* lisp/calculator.el (calculator-expt):
* lisp/emacs-lisp/bytecomp.el (byte-compile-unfold-bcf):
* lisp/emacs-lisp/elint.el (elint-check-defcustom-form):
* lisp/ps-print.el (ps-print-page-p):
(ps-print-sheet-p): Prefer '(evenp A)' to '(= 0 (logand A 1))' and
variations thereof.

(cherry picked from commit 7c7cf3e8c88de6af91b110584f3aa8aff8011409)

3 weeks ago; Small fixes for the recently added 'mhtml-ts-mode'
Juri Linkov [Mon, 17 Feb 2025 17:40:20 +0000 (19:40 +0200)]
; Small fixes for the recently added 'mhtml-ts-mode'

* lisp/textmodes/mhtml-ts-mode.el (mhtml-ts-mode): Add autoload cookie.

* lisp/treesit.el (treesit-modify-indent-rules): Use 'rules'
instead of 'js--treesit-indent-rules'.

(cherry picked from commit 1a8493f0a5fcd45c7e992dbf42cfbb0346edcaff)

3 weeks ago; * CONTRIBUTE: Fix style.
Eli Zaretskii [Mon, 17 Feb 2025 16:06:18 +0000 (18:06 +0200)]
; * CONTRIBUTE: Fix style.

(cherry picked from commit c380a72679a0626cda23072e082955967c1e99f5)

3 weeks ago; * src/xdisp.c (maybe_produce_line_number): Fix last change (bug#76362).
Eli Zaretskii [Mon, 17 Feb 2025 16:00:30 +0000 (18:00 +0200)]
; * src/xdisp.c (maybe_produce_line_number): Fix last change (bug#76362).

(cherry picked from commit 1136963b4e81e2b3efd42f3bd609bf968d05831f)

3 weeks ago; * lisp/term.el (term-control-seq-regexp): remove duplicate chars
Mattias Engdegård [Fri, 7 Feb 2025 17:52:38 +0000 (18:52 +0100)]
; * lisp/term.el (term-control-seq-regexp): remove duplicate chars

(cherry picked from commit bb86bd2bf674aafa49e505d5a78ce8207c5b4f4b)

3 weeks agoMake the rx `eval` form use lexical binding when active
Mattias Engdegård [Fri, 7 Feb 2025 17:52:26 +0000 (18:52 +0100)]
Make the rx `eval` form use lexical binding when active

Previously, it always used dynamic binding.

* lisp/emacs-lisp/rx.el (rx--expand-eval): Heed `lexical-binding`.
* test/lisp/emacs-lisp/rx-tests.el (rx-tests--x, rx-tests--get-x)
(rx-eval): Add test case.
* etc/NEWS: Announce.

(cherry picked from commit 89f88f06a4667a01612704e57f8af43ca19b82c0)

3 weeks ago; Move Markdown quotation detection to commit-msg hook
Po Lu [Mon, 17 Feb 2025 14:08:16 +0000 (22:08 +0800)]
; Move Markdown quotation detection to commit-msg hook

* build-aux/git-hooks/prepare-commit-msg: Don't detect markdown
quotes here...

* build-aux/git-hooks/commit-msg: but here, to intercept
interactively composed log messages.

(cherry picked from commit ba6779ab2afcd3177c9c118a0383aa21ad1ab45f)

3 weeks agoFix child coordinate calculation (bug#76321)
Gerd Möllmann [Mon, 17 Feb 2025 09:42:02 +0000 (10:42 +0100)]
Fix child coordinate calculation (bug#76321)

* src/dispnew.c (rect_intersect): Simplify.
(copy_child_glyphs): Compute child coordinates using child_xy.

(cherry picked from commit d80ac0fbaa09826342a9818014ae950acc7c0c03)

3 weeks ago; Skip commit ae4685c5e220ff4c7f37171e2a1087f2c9b178fa
Eshel Yaron [Tue, 18 Feb 2025 08:52:42 +0000 (09:52 +0100)]
; Skip commit ae4685c5e220ff4c7f37171e2a1087f2c9b178fa

3 weeks agoAdapt query-replace and lazy highlighting to text conversion
Po Lu [Mon, 17 Feb 2025 08:46:48 +0000 (16:46 +0800)]
Adapt query-replace and lazy highlighting to text conversion

* lisp/isearch.el (isearch-lazy-highlight-new-loop): Rather call
redisplay to guarantee a valid window-start than sit-for, to
account for cases where this function is called from an
after-change-function bound to a special input event quickly
followed by another event that does not modify the buffer.

* lisp/progmodes/prog-mode.el (treesit-node-at): Declare
function before references.

* lisp/replace.el (perform-replace): When querying, suppress
text conversion around the input loop.

(cherry picked from commit b236a2529dd90c9f506243b594e2a0d33afb0946)

3 weeks agoWhen ignoring parameters let 'split-window' split root window (Bug#76317)
Martin Rudalics [Mon, 17 Feb 2025 08:29:37 +0000 (09:29 +0100)]
When ignoring parameters let 'split-window' split root window (Bug#76317)

This fixes a behavior introduced by the fix of Bug#73527 that splits the
main window when the caller asks for splitting the root window.

* lisp/window.el (window--make-major-side-window): Bind
'ignore-window-parameters' to t so 'split-window' won't mess
with the WINDOW argument when it specifies the root window.
(split-window): If 'ignore-window-parameters' is non-nil, don't
try to split the main window instead of the root window.

(cherry picked from commit 310f62a9489b9c00d5e60d2ab16e7dc54afcadb9)

3 weeks agovc-revert-file: Support reverting directories
Sean Whitton [Mon, 17 Feb 2025 07:40:38 +0000 (15:40 +0800)]
vc-revert-file: Support reverting directories

* lisp/vc/vc.el (vc-revert-file): Support reverting directories
by calling vc-responsible-backend instead of vc-backend when
FILE is a directory (bug#37310, bug#43464).  Based on an
approach by Dmitry Gutov <dmitry@gutov.dev>.
(vc-rename-file): Add a FIXME to support reverting directories.
* etc/NEWS: Document the new functionality.

(cherry picked from commit 2d59974da71ec7ae20175d74269d4ca3d9be1cc7)

3 weeks agoAdd mhtml-ts-mode.
Vincenzo Pupillo [Fri, 14 Feb 2025 17:38:51 +0000 (18:38 +0100)]
Add mhtml-ts-mode.

New major-mode alternative to mhtml-mode, based on treesitter, for
editing files containing html, javascript and css.

* etc/NEWS: Mention the new mode and new functions.
* lisp/textmodes/mhtml-ts-mode.el: New file.
* lisp/progmodes/js.el
(js--treesit-thing-settings): New variable.
(js--treesit-font-lock-feature-list); New variable.
(js--treesit-simple-imenu-settings): New variable.
(js--treesit-defun-type-regexp): New variable.
(js--treesit-jsdoc-comment-regexp): New variable.
(js-ts-mode): Use of new variables instead of direct assignment of
values.
* lisp/textmodes/css-mode.el
(css-mode--menu): New variable.
(css-mode-map): Use new variable.
(css--treesit-font-lock-feature-list): New variable.
(css--treesit-simple-imenu-settings): New variable.
(css--treesit-defun-type-regexp): New variable.
(cs-ts-mode): Use of new variables instead of direct assignment of
values.
* lisp/textmodes/html-ts-mode.el
(html-ts-mode--treesit-things-settings): New variable.
(html-ts-mode--treesit-font-lock-feature-list): New variable.
(html-ts-mode--treesit-simple-imenu-settings): New variable.
(html-ts-mode--treesit-defun-type-regexp): New variable.
(html-ts-mode): Use of new variables instead of direct assignment of
values.
* lisp/treesit.el
(treesit-merge-font-lock-feature-list): New fuction.
(treesit-replace-font-lock-feature-settings): New fuction.
(treesit-modify-indent-rules): New function.

(cherry picked from commit 05a96fd39809f11a3820e2164b23ebf9df192b13)

3 weeks ago; More strongly discountenance Markdown-style quotes
Po Lu [Mon, 17 Feb 2025 07:17:00 +0000 (15:17 +0800)]
; More strongly discountenance Markdown-style quotes

* CONTRIBUTE (Commit messages): Discourage quoting with
Markdown-style pairs of backticks.

* build-aux/git-hooks/prepare-commit-msg: Detect and reject
commit messages with Markdown-style quotes.

(cherry picked from commit 0e4d08f3dc7c76008da9cd912933a931c6e3e8d9)

3 weeks agoPrefer '(evenp A)' to '(= 0 (% A 2))'
Stefan Kangas [Mon, 17 Feb 2025 04:10:33 +0000 (05:10 +0100)]
Prefer '(evenp A)' to '(= 0 (% A 2))'

* lisp/calc/calc-comb.el (math-prime-test):
* lisp/calc/calc-keypd.el (calc-keypad-press):
* lisp/calc/calc-math.el (math-sqrt):
(math-sqrt-raw):
* lisp/calc/calc-misc.el (math-iipow):
(math-iipow-show):
* lisp/calc/calc-stat.el (calcFunc-vmedian):
* lisp/calendar/cal-tex.el (cal-tex-cursor-filofax-2week):
(cal-tex-cursor-filofax-daily):
* lisp/elec-pair.el (electric-pair-post-self-insert-function):
* lisp/emacs-lisp/checkdoc.el (checkdoc-in-example-string-p):
* lisp/emacs-lisp/eieio.el (defclass):
* lisp/emacs-lisp/ert-x.el (ert-propertized-string):
* lisp/emacs-lisp/ert.el (ert--significant-plist-keys):
(ert--plist-difference-explanation):
* lisp/emacs-lisp/helper.el (Helper-help-scroller):
* lisp/emacs-lisp/pcase.el (pcase-setq):
* lisp/files-x.el (setq-connection-local):
* lisp/gnus/gnus-uu.el (gnus-uu-post-encoded):
* lisp/gnus/message.el (message-make-in-reply-to):
* lisp/gnus/nndiary.el (nndiary-last-occurrence):
(nndiary-next-occurrence):
* lisp/mail/rfc2047.el (rfc2047-decode-region):
* lisp/play/5x5.el (5x5-draw-grid):
* lisp/play/gametree.el (gametree-compute-reduced-score):
(gametree-insert-new-leaf):
(gametree-break-line-here):
* lisp/play/zone.el (zone-fret):
* lisp/vc/ediff-ptch.el (ediff-get-patch-buffer):
* lisp/yank-media.el (yank-media--utf-16-p): Prefer '(evenp A)' to
'(= 0 (% A 2))' and variations thereof.

(cherry picked from commit 89bdb57f24e0bdc1a3d33d7124d93c9a1b45fa1d)

3 weeks agoPrefer '(oddp A)' to '(= 1 (% A 2))'
Stefan Kangas [Mon, 17 Feb 2025 04:06:20 +0000 (05:06 +0100)]
Prefer '(oddp A)' to '(= 1 (% A 2))'

* lisp/align.el (align-match-tex-pattern):
* lisp/calc/calc-funcs.el (math-bernoulli-number):
* lisp/cedet/semantic/bovine/el.el (semantic-ctxt-current-assignment):
* lisp/comint.el (comint-within-quotes):
* lisp/emacs-lisp/chart.el (chart-axis-draw):
* lisp/emacs-lisp/cl-extra.el (cl-round):
* lisp/emacs-lisp/eieio.el (defclass):
* lisp/emacs-lisp/elint.el (elint-check-setq-form):
* lisp/emulation/cua-rect.el (cua--rectangle-right-side):
* lisp/progmodes/gud.el (gud-gdb-completions-1):
* lisp/ps-print.el (ps-end-job):
* lisp/ses.el (ses-center):
* lisp/vc/ediff-ptch.el (ediff-get-patch-buffer): Prefer '(oddp A)' to
'(= 1 (% A 2))' and variations thereof.

(cherry picked from commit e373a6e0d30c28045a0f33e662933c2c2660a220)

3 weeks agoPrefer oddp/evenp to free-coding them in tests
Stefan Kangas [Mon, 17 Feb 2025 03:52:49 +0000 (04:52 +0100)]
Prefer oddp/evenp to free-coding them in tests

* test/lisp/emacs-lisp/bindat-tests.el (bindat-test--sint):
* test/lisp/emacs-lisp/seq-tests.el (test-seq-drop-while)
(test-seq-take-while, test-seq-filter, test-seq-remove)
(test-seq-count, test-seq-some, test-seq-find, test-seq-every-p)
(test-seq-group-by):
* test/lisp/eshell/em-pred-tests.el (eshell-with-file-attributes-from-name):
* test/lisp/filenotify-tests.el (file-notify-test07-many-events)
(file-notify-test09-watched-file-in-watched-dir):
* test/src/floatfns-tests.el (bignum-expt, bignum-round):
* test/src/undo-tests.el (undo-test4): Prefer oddp/evenp to free-coding
them.

(cherry picked from commit 5ce746c3b0fa3a0b73796182960ff06cf3f31473)

3 weeks agoPrefer oddp/evenp to cl-oddp/cl-evenp
Stefan Kangas [Mon, 17 Feb 2025 02:33:54 +0000 (03:33 +0100)]
Prefer oddp/evenp to cl-oddp/cl-evenp

* lisp/calc/calc-ext.el (math-oddp):
* lisp/calc/calc-misc.el (math-evenp):
* lisp/calendar/todo-mode.el
(todo-adjusted-category-label-length, todo-insert-category-line)
(todo-update-categories-display):
* lisp/emacs-lisp/cl-macs.el (cl-defstruct):
* lisp/net/gnutls.el (open-gnutls-stream):
* lisp/tab-line.el (tab-line-tab-face-inactive-alternating):
* test/lisp/auth-source-tests.el
(auth-source-test-macos-keychain-search):
* test/lisp/emacs-lisp/cl-extra-tests.el (cl-extra-test-notany)
(cl-extra-test-notevery):
* test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-adjoin-test):
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs-loop-collect)
(cl-macs-loop-append/nconc, cl-macs-loop-when)
(cl-macs-loop-if):
* test/lisp/emacs-lisp/cl-seq-tests.el (cl-seq-remove-test)
(cl-remove-if-test, cl-remove-if-not-test, cl-seq-delete-test)
(cl-delete-if-test, cl-delete-if-not-test)
(cl-seq-substitute-if-test, cl-seq-substitute-if-not-test)
(cl-find-if-test, cl-find-if-not-test, cl-position-if-test)
(cl-seq-count-test, cl-count-if-test, cl-count-if-not-test)
(cl-member-if-test, cl-member-if-not-test, cl-assoc-if-test)
(cl-assoc-if-not-test, cl-rassoc-if-test)
(cl-rassoc-if-not-test):
* test/src/treesit-tests.el (treesit-search-forward-predicate):
Prefer oddp/evenp to cl-oddp/cl-evenp where possible.

* lisp/calc/calc-ext.el (cl-lib):
* lisp/calc/calc-misc.el (cl-lib): Don't require.

(cherry picked from commit 657f4658a7141708adb7f3ca594145f2df569d4c)

3 weeks agoNew functions oddp and evenp
Stefan Kangas [Sun, 16 Feb 2025 23:52:45 +0000 (00:52 +0100)]
New functions oddp and evenp

* lisp/emacs-lisp/cl-lib.el (cl-oddp, cl-evenp): Move from here...
* lisp/subr.el (oddp, evenp): ...to here.  Make old names into
aliases, documented as deprecated.  Add type declarations.
* lisp/obsolete/cl.el: Don't alias oddp and evenp.

* test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-test-oddp)
(cl-lib-test-evenp): Move tests from here...
* test/lisp/subr-tests.el (subr-test-oddp, subr-test-evenp): ...to here.
* lisp/emacs-lisp/shortdoc.el (number): Add oddp and evenp.
(map): Prefer oddp and evenp to cl-oddp and cl-evenp.

* doc/lispref/numbers.texi (Predicates on Numbers): Document above new
functions oddp and evenp.
* doc/misc/cl.texi (Predicates on Numbers): Delete cl-oddp and cl-evenp.
(Other Clauses): Prefer oddp to cl-oddp.

(cherry picked from commit 667d011410d1ab53fb90a497eb07f0b65c933821)

3 weeks agoImplement `(- N)' frame position specifications on Haiku
Po Lu [Mon, 17 Feb 2025 04:06:15 +0000 (12:06 +0800)]
Implement `(- N)' frame position specifications on Haiku

* src/haikuterm.c (haiku_calc_absolute_position): New function.
(haiku_set_offset): Apply offsets configured by the said
function.

(cherry picked from commit a951dbcf162aaf06a134c597ca0ac59c479afc4b)

3 weeks ago; * src/androidterm.c (android_set_offset): Apply correct frame offsets.
Po Lu [Mon, 17 Feb 2025 04:02:05 +0000 (12:02 +0800)]
; * src/androidterm.c (android_set_offset): Apply correct frame offsets.

(cherry picked from commit 6c1e6ba83c471e6a3c233c611dfe9e88349d5a10)

3 weeks ago; Correct merge errors.
Po Lu [Mon, 17 Feb 2025 03:36:41 +0000 (11:36 +0800)]
; Correct merge errors.

(cherry picked from commit 718a227f0fb926864c5224b5664b4b76c631039f)

3 weeks agoSynchronize frame placement logic with X
Po Lu [Mon, 17 Feb 2025 03:32:43 +0000 (11:32 +0800)]
Synchronize frame placement logic with X

* src/androidterm.c (android_calc_absolute_position): New
function.
(android_set_offset): Call android_calc_absolute_position.

* src/pgtkterm.c (pgtk_calc_absolute_position): Synchronize with
X.

(cherry picked from commit 0a6997b58d417043406dadf3d40e6f9de9ded6a8)

3 weeks agoFix crash in frame deletion on Android
Po Lu [Mon, 17 Feb 2025 03:33:50 +0000 (11:33 +0800)]
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.

(cherry picked from commit e3dc0ea2544dc09908546c6e6baba47371cbc176)

3 weeks ago* src/pgtkterm.c (pgtk_enumerate_devices): Circumvent bug#76239.
Po Lu [Mon, 17 Feb 2025 02:56:37 +0000 (10:56 +0800)]
* src/pgtkterm.c (pgtk_enumerate_devices): Circumvent bug#76239.

(cherry picked from commit e34ea5db5f1c09582e3779828ba248eec5769eb2)

3 weeks agoAdd test for zerop
Stefan Kangas [Mon, 17 Feb 2025 01:21:26 +0000 (02:21 +0100)]
Add test for zerop

* test/lisp/subr-tests.el (subr-test-zerop): New test.

(cherry picked from commit f2fb19d008f57d83053e7981eecded6ace9ab6c7)

3 weeks ago; * etc/symbol-releases.eld: Add plistp.
Stefan Kangas [Mon, 17 Feb 2025 01:14:17 +0000 (02:14 +0100)]
; * etc/symbol-releases.eld: Add plistp.

(cherry picked from commit e779d60ea1d490f22cb5d0d729abedff8dc909d3)

3 weeks agoRemove some details on which files are loaded from cl.texi
Stefan Kangas [Mon, 17 Feb 2025 00:53:55 +0000 (01:53 +0100)]
Remove some details on which files are loaded from cl.texi

* doc/misc/cl.texi (Naming Conventions): Remove section listing
functions that do not cause other files than cl-lib.el to be loaded.
It lacks practical relevance to the user, and is a hostage to changing
implementation details.

(cherry picked from commit 0d40deec20fb8e246b2bbc66afdcec37e3eecd4a)

3 weeks agoAddress FIXME in org-element-create
Stefan Kangas [Mon, 17 Feb 2025 01:04:31 +0000 (02:04 +0100)]
Address FIXME in org-element-create

* lisp/org/org-element-ast.el (org-element-create): Address FIXME.

(cherry picked from commit b417c0abebfa68d37dd07160b81ce5f7da6dd431)

3 weeks agoPrefer cl-evenp/cl-oddp in some places
Stefan Kangas [Mon, 17 Feb 2025 00:57:22 +0000 (01:57 +0100)]
Prefer cl-evenp/cl-oddp in some places

* lisp/erc/erc.el (erc-format-message):
* lisp/obsolete/thumbs.el (thumbs-emboss-image):
* lisp/org/org-capture.el (org-capture-escaped-%):
* lisp/org/org-element-ast.el (org-element-create):
* lisp/org/org-macro.el (org-macro-extract-arguments):
* lisp/org/org-persist.el (org-persist--get-collection):
* lisp/org/ox-odt.el (org-odt-get-table-cell-styles):
* lisp/org/ox.el (org-export--dispatch-ui):
* lisp/progmodes/cperl-mode.el (cperl-forward-re)
(cperl-find-pods-heres): Prefer 'cl-evenp/'cl-oddp' to free-coding them
in some files that already depend on cl-lib in run-time.

(cherry picked from commit 9efd11e5fd4324fb1686b802c15ae36046b0939a)

3 weeks agoAdd gtk-redo icon to x-gtk-stock-map to x-win.el
Elías Gabriel Pérez [Sun, 16 Feb 2025 19:21:52 +0000 (13:21 -0600)]
Add gtk-redo icon to x-gtk-stock-map to x-win.el

* lisp/term/x-win.el (x-gtk-stock-map): Add gtk-redo.

(cherry picked from commit 35d4316101752fc45bfd2301d891fb7b64060500)

3 weeks agoAdd gtk-redo icon to x-gtk-stock-map
Elías Gabriel Pérez [Sun, 16 Feb 2025 19:21:52 +0000 (13:21 -0600)]
Add gtk-redo icon to x-gtk-stock-map

* lisp/term/pgtk-win.el (x-gtk-stock-map): Add gtk-redo.  (Bug#76349)

(cherry picked from commit fc189cb83cf7284344a737e75b3ee56487b1c386)