1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-04-27 08:43:40 -07:00
Commit graph

176378 commits

Author SHA1 Message Date
Daniel Mendler
5294d450da ibuffer: Display column titles in header line
If the option `ibuffer-use-header-line' is set to `title',
display column titles in the header line.
* lisp/ibuffer.el (ibuffer--format-title)
(ibuffer--format-summary): New functions extracted from
`ibuffer-update-title-and-summary'.
(ibuffer-update-title-and-summary): Use them.
(ibuffer-update): Do not always override `header-line-format'.
(ibuffer-use-header-line): Update docstring and option `:type'.
* lisp/ibuf-macs.el (define-ibuffer-sorter): Add "@" to the
interactive specification for clicks on the header line.

* etc/NEWS: Announce the change.
(Bug#75497)
2025-01-25 11:43:45 +02:00
Daniel Mendler
35576fde56 ibuffer: New defcustom `ibuffer-human-readable-size'
* lisp/ibuffer.el (ibuffer-human-readable-size): New
defcustom.
(define-ibuffer-column size): Use it.

* etc/NEWS: Mention new defcustom.
(Bug#75495)
2025-01-25 11:41:44 +02:00
Vladimir Panteleev
5e0fc49f3b Quote identifiers in SQL queries in 'sqlite-mode'
* lisp/sqlite-mode.el: (sqlite-mode-list-tables)
(sqlite-mode-list-columns, sqlite--mode--list-data)
(sqlite-mode-delete): Quote identifiers (table and column
names) in the SQL queries.  Fixes, e.g., opening databases
which have a table called "values".  (Bug#75598)
2025-01-25 11:14:01 +02:00
Gerd Möllmann
13fdcd730f Revert "Simplify absolute (x, y) computation on ttys"
This reverts commit 5e132835ad.
2025-01-25 09:39:56 +01:00
Gerd Möllmann
65036323fc Revert "Fix cursor positioning of nested tty child frames"
This reverts commit 8cbb3c7335.
2025-01-25 09:39:54 +01:00
Gerd Möllmann
9ad28959d6 Revert "Fix tty-frame-at for nested tty child frames"
This reverts commit 9693f2a95a.
2025-01-25 09:39:51 +01:00
Gerd Möllmann
e2cc52dbcd Revert "Fix mouse position handling for nested tty child frames"
This reverts commit f37559a1ee.
2025-01-25 09:39:47 +01:00
Gerd Möllmann
d93d822285 Revert "Multi-tty: selected frame can be a GUI frame"
This reverts commit 57b7c07b37.
2025-01-25 09:39:11 +01:00
Gerd Möllmann
57b7c07b37 Multi-tty: selected frame can be a GUI frame
* src/dispnew.c (frame_selected_window_frame): New function.
(is_cursor_obscured): Use it.
(terminal_cursor_magic): Use the frame of the selected window of he root
frame.
(combine_updates_for_frame): Move Android conditional compilation out.
2025-01-25 07:59:45 +01:00
Gerd Möllmann
f37559a1ee Fix mouse position handling for nested tty child frames
* src/dispnew.c (child_xy): New function.
* src/dispextern.h: Declare it.
* src/term.c (tty_frame_at): Return child-relative (x, y) in output
parameters.
(Ftty_frame_at): Return a list (FRAME CHILD-X CHILD-Y).
(handle_one_term_event): Adapt use of tty_frame_at.
* lisp/xt-mouse.el (xterm-mouse-event): Use new tty-frame-at.
2025-01-25 07:35:51 +01:00
Gerd Möllmann
9693f2a95a Fix tty-frame-at for nested tty child frames
* src/term.c (tty_frame_at): Translate child frame origin to absolute
coordinates.
2025-01-25 07:35:51 +01:00
Gerd Möllmann
8cbb3c7335 Fix cursor positioning of nested tty child frames
* src/terminal.c (cursor_to, raw_cursor_to): Fix translation to root
coordinates.
2025-01-25 07:35:51 +01:00
Gerd Möllmann
5e132835ad Simplify absolute (x, y) computation on ttys
* src/dispnew.c (root_xy): New function.
(frame_pos_abs): Removed.
(frame_rect_abs, abs_cursor_pos): Use root_xy.
* src/dispextern.h: Declare root_xy.
* src/term.c (mouse_get_xy): Use it.
2025-01-25 07:35:51 +01:00
Stephen Gildea
a00e6e7143 ; time-stamp: Rename some internal symbols
* lisp/time-stamp.el: (time-stamp-string-preprocess): Rename 'alt-form'
to 'colon-cnt' because it is now an integer.
* test/lisp/time-stamp-tests.el: Rename 'formatz-generate-tests' to
'define-formatz-tests'.
2025-01-24 10:14:30 -08:00
Stephen Gildea
77fe4fbeff ; * lisp/time-stamp.el: Improve two documentation strings 2025-01-24 09:45:50 -08:00
Stephen Gildea
0d38f1d07b ; * doc/emacs/files.texi: only one time stamp index entry 2025-01-24 08:55:41 -08:00
Gerd Möllmann
07a2a67e3b Disable more redisplay optimizations when child frames are visible
* src/xdisp.c (redisplay_internal): Disable more optimizations
on a tty root frame displaying a child frame.
(try_cursor_movement,(try_window_reusing_current_matrix)
(try_window_id): Don't use on tty root frames displaying a child frame.
2025-01-24 11:32:59 +01:00
Eli Zaretskii
5e657ad1fe ; * src/dispnew.c (combine_updates_for_frame): Fix whitespace. 2025-01-24 10:41:00 +02:00
Eli Zaretskii
6c633ece6e Revert "; * src/dispnew.c (combine_updates_for_frame): Fix whitespace."
This reverts commit c941b94e51.
It was pushed by mistake.
2025-01-24 10:40:14 +02:00
Eli Zaretskii
c941b94e51 ; * src/dispnew.c (combine_updates_for_frame): Fix whitespace. 2025-01-24 10:26:26 +02:00
Gerd Möllmann
15315780ae Handle update of invisible tty frames (bug#75056)
* src/dispnew.c (combine_updates_for_frame): Don't assume root frame is
visible.
2025-01-24 06:25:08 +01:00
Stefan Kangas
f14c24dbe7 Support loading dynamic docstrings from Emacs <29
* src/doc.c (get_doc_string): Take absolute value to be compatible with
bytecode from Emacs <29.
2025-01-24 00:48:17 +01:00
Stefan Kangas
c7f6da7a41 Don't use negative positions for docstrings
These were used for user-variables (doc starts with a '*'), but we don't
use that convention any more.  On my machine, there are no docstrings
starting with a '*' in etc/DOC.

* src/doc.c (Fsnarf_documentation): Never use negative positions.
(get_doc_string): Don't use eabs; position must now be positive, and all
callers are verified to do that.
2025-01-24 00:16:08 +01:00
Pip Cet
ed5067e689 Fix GC bug causing incorrect 'format' output (Bug#75754)
This fixes the correctness bug discovered in bug#75754, but not the
performance issue or excessive stack usage.

* src/editfns.c (styled_format): Split 'info' array into two arrays,
one of them allocated via SAFE_ALLOCA_LISP for GC protection.
2025-01-23 18:00:01 +00:00
Stefan Kangas
990b0811ad Simplify Fdocumentation and Fdocumentation_property
* src/doc.c (Fdocumentation, Fdocumentation_property): Simplify;
reread_doc_file always returns true so just assume that.
(reread_doc_file): Change return type to void.
2025-01-23 18:45:14 +01:00
João Távora
c888e726ca Eglot: skip Tramp tests except on Emacs 28+
* test/lisp/progmodes/eglot-tests.el
(eglot--call-with-tramp-test): Fix
2025-01-23 15:52:07 +00:00
Gerd Möllmann
d83d090de1 Handle tty menus overlapping child frames
* src/dispnew.c (frame_pos_abs, is_frame_ancestor): Make externally
visible.
* src/dispextern.h: Declare above functions.
* src/term.c (mouse_get_xy): Handle mouse movement over child frames.
2025-01-23 15:34:36 +01:00
Robert Pluim
da3b93ff96 ; * lisp/emacs-lisp/shortdoc.el (map): Fix copy'n'pasto. 2025-01-23 13:29:26 +01:00
Robert Pluim
67480c159e Add shortdoc for map.el functions
* lisp/emacs-lisp/shortdoc.el (map): New shortdoc group.
2025-01-23 11:27:10 +01:00
Gerd Möllmann
076cd69fc2 Don't forget setting the top frame if not switching root frames
* src/frame.c (do_switch_frame): Make sure to set top frame in all
cases.
2025-01-23 11:09:19 +01:00
Gerd Möllmann
b1ec006e9f Fix setting a tty's top frame when switching frames
* src/frame.c (do_switch_frame): Compare root frames correctly.
2025-01-23 07:54:48 +01:00
Eli Zaretskii
1dc529d463 ; * doc/lispref/elisp.texi (Top): Move menu item to submenu. 2025-01-23 07:45:54 +02:00
Eli Zaretskii
796665b32e ; * doc/lispref/functions.texi (Functions): Remove extraneous menu item. 2025-01-23 07:43:40 +02:00
Stephen Gildea
90b4c1b6f2 Fix ERT / find-function type integration typos
* lisp/emacs-lisp/ert.el (ert-test-location, ert-describe-test):
Correctly type the test object as 'ert--test'.
* lisp/emacs-lisp/find-func.el (find-ert-deftest-regexp): Remove this
duplicate, broken customization.
2025-01-22 19:22:24 -08:00
Stephen Gildea
aa6d2a396a * doc/lispref: new node "Finding Definitions"
How to use variable 'find-function-regexp-alist',
properties 'definition-name' and 'find-function-type-alist',
and function 'find-function-update-type-alist' to help Emacs
locate the definition of objects defined by macros.

This material is moved from node "Standard Properties" and expanded.
2025-01-22 18:31:10 -08:00
F. Jason Park
331bcfaee5 Reuse client cert for connectivity probing in ERC
* lisp/erc/erc-backend.el (erc--server-connect-function)
(erc--server-post-dial-function): Rename former to latter because the
existing name is better suited for the eventual generalizing of
`erc-server-connect' in a future version.
(erc-server-connect): Use new name for `erc--server-connect-function',
`erc--server-post-dial-function'.
(erc--recon-probe-reschedule, erc--recon-probe-sentinel)
(erc--recon-probe-filter, erc--recon-probe-check): New functions
factored out of `erc-server-delayed-check-reconnect'.
(erc-server-delayed-check-reconnect): Refactor, splitting off lambdas
into top-level functions for improved tracing.
* lisp/erc/erc.el (erc-message-english-recon-probe-hung-up)
(erc-message-english-recon-probe-nobody-home): New
variables.  (Bug#62044)

Thanks to Libera.Chat user arjan for reporting this bug, which
is new in ERC 5.6 and Emacs 30.1.
2025-01-22 16:07:55 -08:00
F. Jason Park
d6b210aa09 ; Don't quote localp argument to define-erc-module
* etc/ERC-NEWS: Rearrange some entries for 5.6.1.
* lisp/erc/erc-fill.el (erc-fill-wrap-mode):
* lisp/erc/erc-goodies.el (erc-keep-place-indicator-mode)
(erc-command-indicator-mode):
* lisp/erc/erc-nicks.el (erc-nicks-mode):
* lisp/erc/erc-notify.el (erc-querypoll-mode):
* lisp/erc/erc-sasl.el (erc-sasl-mode):
* lisp/erc/erc-services.el (erc-services-regain-mode): Don't quote
localp argument.
* test/lisp/erc/erc-scenarios-misc.el (erc-nicks-track-faces/defer):
Skip on Emacs 27 due to recent CI failures.
* test/lisp/erc/erc-scenarios-misc.el (erc-scenarios-base-flood): Adjust
timeout.
2025-01-22 16:07:55 -08:00
João Távora
92c5c1b786 Eglot: unbreak a rarely run test
* test/lisp/progmodes/eglot-tests.el
(eglot-test-snippet-completions-with-company): Don't expect fooba to be
there, do expect two completions to be candidates.
2025-01-22 23:07:36 +00:00
João Távora
47a938c889 Eglot: unbreak tests for older Emacsen
* test/lisp/progmodes/eglot-tests.el (eglot-test-basic-symlink):
Use skip-unless
2025-01-22 23:07:33 +00:00
João Távora
9068dcbd71 Eglot: fix edebug spec of eglot--dbind
* lisp/progmodes/eglot.el (eglot--dbind): Fix edebug spec.
2025-01-22 23:07:28 +00:00
João Távora
7e2f6ce0cb Eglot: unbreak completion in Emacs 26.3 (at least)
For reasons yet to be investigated, in some Emacs older versions,
callers of the completion table created by eglot-completion-at-point
will destroy text properties in the strings returned by the
"all-completions" call (destroy here means completely erase).  This
completely breaks Eglot completion.

(eglot-completion-at-point): Copy substrings in all-completions
call.
2025-01-22 23:07:15 +00:00
João Távora
a60249b098 Eglot: abandon compat.el
After period of months using this to help compatibility to older Emacs
versions.  It's not really buying us that much and complicates
maintenance, so it gets the axe.

A common problem is the compatibility alias for require-with-check,
which often errors with some "Feature X loaded from Y is now provided by
Z".  The tests for Emacs 26.3 were all failing in the Github tracker
ever since this (and track-changes.el) were added to Eglot.

* lisp/progmodes/eglot.el (compat): No longer require.
(eglot-alternatives): Reword comment.
(eglot-alternatives): Call eglot--executable-find.
(eglot--guess-contact): Call eglot--executable-find.
(eglot--connect): Check if package-get-version exists.
(eglot--format): Check if substitute-quotes exists.
(eglot--format-markup): Check if text-property-search exists.
2025-01-22 23:05:33 +00:00
João Távora
ac902ddadc Eglot: abandon track-changes.el
After a ~10 month period of using track-changes.el as a support library
for tracking buffer changes, I've decided to go back to manually using
after-change-functions and before-change-functions.

track-changes.el showed promise:

- One of the selling points was to turn complicated a-c-functions and
  b-c-functions into something easier, but that objectively didn't pan
  out, with "virtual" positions, one-shot hooks, and tracker
  registrations being abstractions and complications mastered by very
  few.

- The other selling point was the ability to log and detect those parts
  of Emacs that cheat the modification hooks and correct them.  As far
  as I can tell, only one such cheater -- quail.el -- was identified.
  But with little consequence, only an ugly workaround in eglot.el (now
  removed).

- After using Eglot daily for all this time, I didn't notice any
  decrease in desynchronization events.

- I did notice an increase in track-changes.el related bugs, some of
  which still baffle me and and hard to reproduce.  A common occurence
  is the '(cl-assertion-failed (memq id track-changes--trackers))'
  which is hard to track down.

- The library makes it more complicated to run Eglot on older Emacsen.

I might yet revisit this matter for the next version but this
experience has shown that it didn't bring the advantages I thought it
would, so I'm abandoning it until at least 1.19 is out.

* lisp/progmodes/eglot.el (track-changes): No longer require.
(eglot--virtual-pos-to-lsp-position): Delete.
(eglot--managed-mode): Simplify.
(eglot--track-changes): Delete this variable.
(eglot--recent-changes): Reword doc.
(eglot--before-change, eglot--after-change): Bring back.
(eglot--track-changes-fetch): Delete.
(eglot--add-one-shot-hook): Delete.
(eglot--track-changes-signal): Delete.
2025-01-22 23:02:35 +00:00
Stefan Kangas
d3ada49a37 Minor image_error related cleanups
* src/image.c (image_create_x_image_and_pixmap_1): Avoid temporary
variable by passing the value directly to image_error.
(tiff_handler): Prefer image_error to add_to_log for local
consistency.
2025-01-22 23:42:13 +01:00
Pip Cet
bf55eb1a8a ; * src/pdumper.c (dump_hash_table): Adjust hash; bitfields changed. 2025-01-22 19:50:31 +00:00
Paul Eggert
34166dcf9c Port allows-stdout test to overly-suspicious bwrap
* test/src/emacs-tests.el (emacs-tests/bwrap/allows-stdout):
Skip test if bwrap prohibits even "echo Hi",
which it does on my Ubuntu 24.10 platform.
This extra check means we no longer need to test
separately whether the filter is readable.
2025-01-22 11:04:57 -08:00
Paul Eggert
2efffbe773 Don’t silently truncate connection-lost diagnostic
* src/xterm.c (x_io_error_quitter): Do not silently truncate
the diagnostic when a connection is lost to an X server.
2025-01-21 22:31:00 -08:00
Paul Eggert
db9ea9b77a Check for snprintf truncation in pgtkterm
* src/pgtkterm.c (pgtk_enumerate_devices):
Abort if snprintf truncated.
2025-01-21 22:31:00 -08:00
Paul Eggert
4a25ed300f Port pdumper to unlikely long sprintf output
* src/pdumper.c (dump_ptr_referrer): Port to platforms
where sprintf %p generates absurdly long output.
(dump_vectorlike): Port to hypothetical platforms
where %d generates absurdly long output.
2025-01-21 22:31:00 -08:00
Paul Eggert
8ff7338fdd When debugging image.c, abort if silent truncation
* src/image.c (image_build_heuristic_mask, png_load_body):
Abort if snprintf truncated.  (If truncation is not possible
here we should use sprintf instead, as that simplifies
automatic runtime checking.)
2025-01-21 22:31:00 -08:00