Commit graph

177410 commits

Author SHA1 Message Date
Po Lu
a5f8ce9f1e Re-port to 32-bit systems without alignment primitives
* configure.ac (ALIGNOF_INT, ALIGNOF_LONG, ALIGNOF_LONG_LONG):
New variables.
(emacs_cv_alignas_unavailable): Define if alignas and structure
alignment primitives are unavailable.  In such an environment,
the MSB tagging scheme must be enabled, as must the GNU malloc.

* msdos/sed2v2.inp: Adjust correspondingly.

* src/alloc.c (union emacs_align_type): Remove types which
contain flexible array members.  The address of a field
subsequent to an aggregate with flexible array members cannot
validly be taken.
(mark_memory) [!USE_LSB_TAG && !WIDE_EMACS_INT]: Strip type bits
before scanning memory.

* src/emacs.c (main):

* src/eval.c (Fautoload_do_load):

* src/fns.c (Frequire): Rename a number of illogically named
fields.

* src/lisp.h (ALIGNOF_EMACS_INT): Define to the natural
alignment of EMACS_INT.
(IDEAL_GCALIGNMENT): New macro.
(USE_LSB_TAG): Disable if no alignment specifiers are available,
WIDE_EMACS_INT is undefined, and the natural alignment of
EMACS_INT falls short of LSB tagging's requirements.
(gflags): Rename illogically named fields and don't define them
as bitfields, which runs afoul of certain compiler issues.
(will_dump_p, will_bootstrap_p, will_dump_with_pdumper_p)
(dumped_with_pdumper_p): Adjust accordingly.

* src/pdumper.c (VM_SUPPORTED): Define to 0 when !USE_LSB_TAG.
It is better to read dump files into the heap by hand than to be
supplied with an address that is not representable.
(_dump_object_start_pseudovector): Rename to
dump_object_start_pseudovector, to avoid encroaching on reserved
names.
(START_DUMP_PVEC): Adjust correspondingly.
(dump_mmap_contiguous_vm): Preserve errno around failure
cleanup.
(dump_bitset_bit_set_p): Work around certain compiler issues.
(pdumper_load) [!USE_LSB_TAG]: Reject dump file allocations
that are not representable as Lisp_Objects.

Tested on i386-unknown-solaris2.10, sparc-sun-solaris2.10.
2025-03-09 23:07:33 +08:00
Sean Whitton
57cef07710 Restore find-function-mode-map (bug#76700)
* lisp/emacs-lisp/find-func.el
(find-function-mode-lower-precedence): New option.
(find-function-mode-map): Restore.
(find-function-mode): Don't unconditionally bind keys into the
global map.  Instead respond to the new user option (bug#76700).
* etc/NEWS: Mention the new option in existing entry.
2025-03-09 21:50:16 +08:00
Mauro Aranda
203747b87f Allow changing theme settings without reloading it
* lisp/custom.el (custom--should-apply-setting): Return non-nil
for an enabled theme.  Provide docstring.  This allows for users
to reevaluate a custom-theme-set-* function and see the settings
applied right away.  (Bug#76685)
(custom--inhibit-theme-enable): Adapt docstring.

* etc/NEWS: Announce the new behavior.
2025-03-09 09:22:29 -03:00
Michael Albinus
5890ee840e Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs 2025-03-09 12:42:06 +01:00
Michael Albinus
ee789d3d27 * admin/notes/jargon: Add AFK and OOO. 2025-03-09 12:41:40 +01:00
Eli Zaretskii
eb03969846 Merge from origin/emacs-30
35c7837c66 Fix TAGS regeneration with Universal Ctags
2025-03-09 07:33:14 -04:00
Eli Zaretskii
7f655b1188 ; Merge from origin/emacs-30
The following commit was skipped:

b1a9a4a48e Fix crash in daemon when "C-x C-c" while a client frame s...
2025-03-09 07:33:14 -04:00
Eli Zaretskii
bcfa9692f0 Merge from origin/emacs-30
af8017b23f Explicitly document read-string return value
cf03c2b609 Improve docstrings of python.el import management
01bcc6961a ; Improve doc strings of Speedbar
bd9c76ab17 Avoid warnings about 'image-scaling-factor' in builds --w...
2025-03-09 07:33:13 -04:00
Gerd Möllmann
6fb68f4310 Fix drawing to the bottom-right corner of terminals
* src/term.c (tty_write_glyphs_1): Renamed from tty_write_glyphs. Don't
check if writing the bottom-right corner.
(tty_write_glyphs): New function handling case of writing to the
bottom-right corner, and otherwise calling tty_write_glyphs_1.
2025-03-09 12:21:00 +01:00
Mauro Aranda
d01b7c85fe Guard against user saving ediff-meta-diff-buffer
* lisp/vc/ediff-mult.el (ediff-collect-custom-diffs): If the
diff buffer is visiting a file, create a new buffer.  (Bug#3348)

* test/lisp/vc/ediff-mult-tests.el: New test file.
2025-03-09 08:10:17 -03:00
Gerd Möllmann
ba20f73d8e macOS: Don't constrainFrameRect for child frames
* src/nsterm.m ([EmacsWindow constrainFrameRect:toScreen:]): Don't do
anything for child frames.
2025-03-09 11:49:27 +01:00
Rudolf Adamkovič
41c1c6ffac Make sure Comint minibuffer password prompts end with space
* lisp/comint.el (comint-watch-for-password-prompt): Add a trailing
space character to the minibuffer password prompt, if it does not
contain one already, per the minibuffer UI conventions.

Bug#76604
2025-03-09 11:46:51 +02:00
Eli Zaretskii
7e89ef2ced ; Fix documentation of previous change.
* lisp/display-fill-column-indicator.el
(display-fill-column-indicator-warning)
(display-fill-column-indicator-warning-face): Doc fixes.

* etc/NEWS: Announce 'display-fill-column-indicator-warning'.
(Bug#76494).
2025-03-09 11:20:33 +02:00
Elías Gabriel Pérez
2322dea77c Highlight fill-column-indicator when current line is too long
* lisp/display-fill-column-indicator.el
(display-fill-column-indicator-warning): New user option.
(display-fill-column-indicator-warning-face): New face.
(display-fill-column-indicator-mode): Add post-command-hook
if `display-fill-column-indicator-warning' is ON.  (Bug#76494)
2025-03-09 11:10:56 +02:00
Arash Esbati
31ebc00ece ; Add debug spec
* lisp/textmodes/reftex-parse.el (reftex-with-special-syntax): Add
debug spec and docstring.
2025-03-09 09:12:37 +01:00
Mauro Aranda
8bea0aae3b Action button when point is just after it
* lisp/cus-edit.el (Custom-newline): If no button at point,
check for a button before point.  (Bug#72341)
2025-03-09 14:28:25 +08:00
Christoph Badura
00e284fc52 VC: New hook to strip CVS template lines when committing
Add a hook function to strip all lines beginning with "CVS:" from the
commit message as CVS does.  Do this only if 'log-edit-vc-backend' is
'CVS'.  (Bug#72341)

* lisp/vc/log-edit.el
(log-edit-done-strip-cvs-lines): New command.
(log-edit-done-hook): Add it as an option.

* test/lisp/vc/log-edit-tests.el
(log-edit-done-strip-cvs-lines-helper): New function.
(log-edit-done-strip-cvs-lines-cvs)
(log-edit-done-strip-cvs-lines-non-cvs)
(log-edit-done-strip-cvs-lines-only-cvs-colon-blank)
(log-edit-done-strip-cvs-lines-only-cvs-colon): New test cases.

* etc/NEWS: Mention log-edit-done-strip-cvs-lines.
2025-03-09 14:28:25 +08:00
Ben Scuron
35c7837c66 Fix TAGS regeneration with Universal Ctags
* lisp/progmodes/etags-regen.el (etags-regen--append-tags): Move
the "-o" option to before the filename, as Ctags doesn't allow
it to follow the file name.  (Bug#76855)

Copyright-paperwork-exempt: yes
2025-03-09 08:19:01 +02:00
Po Lu
4db604f375 ; * java/org/gnu/emacs/EmacsWindow.java (viewLayout): Typo in comment. 2025-03-09 13:22:59 +08:00
Po Lu
1e289586fc Avoid reserved names in sfnt.c
* src/sfnt.c (_MIN, _MAX): Rename to INS_MIN and INS_MAX.
(sfnt_interpret_run): Adjust accordingly.
2025-03-09 13:20:02 +08:00
john muhl
2f1b1414f7 Use TS to support 'hs-minor-mode' in 'lua-ts-mode'
* lisp/progmodes/lua-ts-mode.el (lua-ts-mode): Add list type to
'treesit-thing-settings'.
* lisp/progmodes/hideshow.el (hs-special-modes-alist):
Remove regular expression based implementation.
* test/lisp/progmodes/lua-ts-mode-resources/hide-show.lua: New file.
* test/lisp/progmodes/lua-ts-mode-tests.el (lua-ts-test-hideshow):
Add test.  (Bug#76693)
2025-03-08 20:50:59 +02:00
Michael Heerdegen
7905ea761a Correct (debug body) edebug specs
This fixes Bug#69865.

* lisp/org/ob-exp.el (org-babel-exp--at-source):
* test/lisp/dired-tests.el (dired-test-with-temp-dirs):
* test/lisp/emacs-lisp/package-tests.el (with-fake-help-buffer):
Fix broken edebug specs (debug body) -> (debug (body)).
2025-03-08 18:35:07 +01:00
Kévin Le Gouguec
f23ee93250 Prevent button.el from clearing help-echo strings
In order to fix one of the issues discussed in bug#61413, i.e.
'buttonize' clobbering the help-echo property set by
'icon-string'.

This is a reasonable interpretation of the button.el
docstrings - "if HELP-ECHO, use that as the `help-echo'
property"; conversely, if not HELP-ECHO, then do not do
anything, preserving existing values for that property.

* lisp/button.el (button--properties): Only add a help-echo
property if HELP-ECHO is non-nil.  Add an additional property
for bookkeeping.
(unbuttonize-region): Check for that bookkeeping property
before clearing help-echo.
* test/lisp/button-tests.el (button--preserve-help-echo):
Validate these changes.
2025-03-08 17:29:34 +01:00
Daniel Colascione
269d337f91 Make windmove repetition more robust
Munge this-command when we hit a movement barrier so we override only on
the very next command instead of at the end of a sequence of movement
commands that didn't encounter a barrier.

* (windmove-do-window-select): Use last-command to remember that we hit
a barrier.
2025-03-08 07:53:07 -08:00
Daniel Colascione
1a9c2a9505 Fix documentation for windmove commands
* lisp/windmove.el (windmove-left, windmove-up, windmove-right)
(windmove-down): Mention correct variable names and align descriptions.
2025-03-08 07:52:59 -08:00
Po Lu
b36abc76ae ; Enable pdumper on some buggy versions of Sun C
* src/pdumper.c (dump_sort_copied_objects, drain_reloc_list)
(dump_do_fixups, dump_do_dump_relocation): Do not expand
Fnreverse multiple times in CALLN.  Sun C 5.12 evaluates the
arguments to array initializers to which it expands, which
clobbers the lists being reversed.
2025-03-08 21:58:19 +08:00
Po Lu
b0b7ad24e6 Don't lose drag-and-drop data intended for XTerm-like programs
* src/xselect.c (x_own_selection): If special values exist for
drag-and-drop to unsupported programs, retain them till the
selection is cleared.
2025-03-08 20:42:49 +08:00
Eli Zaretskii
b1a9a4a48e Fix crash in daemon when "C-x C-c" while a client frame shows tooltip
* src/frame.c (delete_frame): Ignore tooltip frames when looking
for other frames on the same terminal.  (Bug#76842)

(cherry picked from commit d2445c8c23)
2025-03-08 11:35:02 +02:00
Eli Zaretskii
d2445c8c23 Fix crash in daemon when "C-x C-c" while a client frame shows tooltip
* src/frame.c (delete_frame): Ignore tooltip frames when looking
for other frames on the same terminal.  (Bug#76842)
2025-03-08 11:31:22 +02:00
Sean Whitton
1bb91adea5 ; windmove-allow-repeated-command-override: Improve docstring 2025-03-08 17:14:54 +08:00
Sean Whitton
a546225e1a vc-log-internal-common: Kill all local variables
* lisp/vc/vc.el (vc-log-internal-common): Kill all local
variables, even permanent-local ones (bug#44698).
2025-03-08 17:09:30 +08:00
Eli Zaretskii
9bb2fe22db ; Fix wording of a recently-added NEWS entry. 2025-03-08 10:29:32 +02:00
Daniel Colascione
c82495dea7 Let repeated windmove override motion restrictions interactively
* lisp/windmove.el (windmove-allow-all-windows): document feature
(windmove-allow-repeated-command-override): new option
(windmove-do-window-select, windmove-left, windmove-up, windmove-right)
(windmove-down): pass interactive
* etc/NEWS: mention feature
2025-03-07 22:22:30 -08:00
Daniel Colascione
0972a54a5a Add static-when, static-unless like static-if
* lisp/subr.el (static-when, static-unless): define
* doc/lispref/control.texi (Conditional Compilation): document
* etc/NEWS: mention
2025-03-07 22:22:30 -08:00
João Távora
1c313f8dce Eglot: the margin code action indicator is interactive
* doc/misc/eglot.texi (Customization Variables): Fix.
2025-03-08 05:36:48 +00:00
João Távora
02f9b525fc Revert "Eglot: tests must work on 26.3"
This reverts commit 331492a148.

My bad: gensym wasn't the problem, it's available from 26.1.  Incf
was the problem, in the main program file.

* test/lisp/progmodes/eglot-tests.el (eglot--with-timeout): Back to gensym
2025-03-08 05:20:30 +00:00
João Távora
d81cdf9fd2 Eglot: unbreak from Emacs 26.3 (two-arg setq-local)
* lisp/progmodes/eglot.el (eglot--hierarchy-1): Use two-arg setq-local
2025-03-08 05:15:57 +00:00
João Távora
331492a148 Eglot: tests must work on 26.3
;; IMPORTANT: Since Eglot is a :core ELPA package, these tests are
;; supposed to run on Emacsen down to 26.3.  Do not use bleeding-edge
;; functionality not compatible with that Emacs version.

* test/lisp/progmodes/eglot-tests.el (eglot--call-with-timeout):
Back to cl-gensym.
2025-03-08 04:42:21 +00:00
Stefan Kangas
1efcd32cda Expand word list in admin/notes/jargon
* admin/notes/jargon: Add some more acronyms, remove some rare ones,
add section headers "Acronyms" and "Glossary", add entries under
"Glossary", sort, fix formatting, realign.
2025-03-08 03:06:09 +01:00
Stefan Kangas
ce43d6732b Support :maintainers in plural in <foo>-pkg.el
For some reason, MELPA emits the keyword :maintainers, despite it
being unsupported and thus leads to the "Maintainer" field being empty
in all released Emacs versions.  That said, it seems like a good idea
to support the plural form, to be consistent with :authors.

* lisp/emacs-lisp/package.el (describe-package-1): Support
:maintainers in plural, in addition to :maintainer, to be consistent
with :authors.
2025-03-08 02:29:54 +01:00
Daniel Colascione
062c6ab3dd Stop term-erase-in-line disturbing markers
* lisp/term.el (term-erase-in-line): do nothing if there's nothing to
do; insert new newlines before deleting old ones.
2025-03-07 16:27:37 -08:00
dimagid
a48659e57c Add admin/notes/jargon used in emacs-devel
* admin/notes/jargon: New file.
Ref: https://lists.gnu.org/r/emacs-devel/2025-02/msg00950.html
2025-03-07 23:00:39 +01:00
Stefan Kangas
ebb94d712e ; Add Maintainer header to checkdoc.el
* lisp/emacs-lisp/checkdoc.el: Add Maintainer header.
2025-03-07 23:00:39 +01:00
Gerd Möllmann
9277b03793 Fix tty underline capability check (bug#75024)
* src/dispextern.h (TTY_CAP_UNDERLINE_STYLED): Fix. Also make this an
enum.
2025-03-07 21:30:11 +01:00
Daniel Colascione
ae4671a7ab Revert "Stop moving markers during erase-in-line"
This reverts commit 6f19715937.
2025-03-07 12:17:54 -08:00
Daniel Colascione
6f19715937 Stop moving markers during erase-in-line
We shouldn't move a line marker just because we cleared a line next to
it.  clear-in-line is defined not to affect line structure.

* lisp/term.el (term-erase-in-line): use insert-before-markers
2025-03-07 11:24:21 -08:00
Daniel Colascione
4ea07cc4b4 Make erase-in-line conform to ANSI spec in term
When handling \e[<N>K escape sequences, we're supposed to erase both to
the left _and_ to the right of the cursor when N is two.

* lisp/term.el (term-erase-in-line): make condition check more correct
2025-03-07 11:24:21 -08:00
Stefan Kangas
af8017b23f Explicitly document read-string return value
* src/minibuf.c (Fread_string): Document return value explicitly.
Better document PROMPT argument, and reflow docstring.  (Bug#76797)
2025-03-07 18:13:52 +01:00
Stefan Kangas
af828499c6 Add type check to package-upgrade
* lisp/emacs-lisp/package.el (package-upgrade): Add type check.
2025-03-07 17:44:27 +01:00
Basil L. Contovounesios
e62e7aa899 Clean up ert-font-lock error messages
* lisp/emacs-lisp/ert-font-lock.el: Remove redundant requires.
(ert-font-lock--parse-macro-args): First return value 'doc' being
nil already indicates omission of a docstring, so remove redundant
second return value doc-p.  All users updated.  Fix error
messages (bug#76372).
(ert-font-lock--check-faces): Simplify with ensure-list.
2025-03-07 15:58:08 +01:00