aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* NS: Add native image support for HEIF, SVG and WEBP on GNUstepYavor Doganov2026-01-172-5/+31
| | | | | | | * src/nsimage.m (ns_can_use_native_image_api): Handle HEIF, SVG and WEBP image types on GNUstep. * src/image.c (syms_of_image): Add conditional native image support for HEIF, SVG and WEBP on GNUstep. (Bug#80101)
* NS: Fix Meta key on GNUstepYavor Doganov2026-01-171-0/+4
| | | | | | * src/nsterm.m (syms_of_nsterm): On GNUstep, set ns-command-modifier to "meta" to match the backend default setting. (Bug#80090)
* New D-Bus functions to support systemd inhibitor locksMichael Albinus2026-01-171-0/+109
| | | | | | | | | | | | | | | | | | | | | | | | * doc/misc/dbus.texi (Top): Add "Inhibitor Locks" submenu. Remove trailing period from chapter and section titles. (Inhibitor Locks): New node. * etc/NEWS: New D-Bus functions to support systemd inhibitor locks. Presentational fixes and improvements. * src/dbusbind.c (xd_registered_inhibitor_locks): New variable. (Fdbus_make_inhibitor_lock, Fdbus_close_inhibitor_lock) (Fdbus_registered_inhibitor_locks): New DEFUNs. (Bug#79963) (syms_of_dbusbind_for_pdumper): Initialize `xd_registered_inhibitor_locks'. (syms_of_dbusbind): Declare subroutines `Sdbus_make_inhibitor_lock', `Sdbus_close_inhibitor_lock' and `Sdbus_registered_inhibitor_locks'. Declare symbol `Qdbus_call_method'. staticpro `xd_registered_inhibitor_locks'. * test/lisp/net/dbus-tests.el (dbus--test-systemd-service) (dbus--test-systemd-path, dbus--test-systemd-manager-interface): New defconsts. (dbus-test10-inhibitor-locks): New test.
* Various housekeeping in image.cBasil L. Contovounesios2026-01-161-31/+18
| | | | | | | | | | | | | | | | | | * doc/lispref/display.texi (Customizing Bitmaps): Fix grammar. (XBM Images): Fix reference to incorrect number of properties. (Multi-Frame Images, Other Image Types): Mention multi-frame WebP support. * src/image.c: Don't include pdumper.h; it hasn't been needed since commit of 2019-05-17 "Clean up and simplify image-type setup". Fix some commentary. (image_pix_container_create_from_bitmap_data): Remove no longer used frame parameter (bug#80191); this continues from commit of 2022-11-25 "Remove unused parameter from image_create_pix_container". All callers updated. (x_create_xrender_picture, initialize_image_type): Simplify. (xbm_image_p): Remove redundant conditional branch. Update commentary.
* Fix off-by-one error in native_image_pBasil L. Contovounesios2026-01-161-3/+3
| | | | | | * src/image.c (native_image_format): Make array size explicit, to help keep it consistent with its later fmt descriptor copy. (native_image_p): Parse the correct number of keywords (bug#80191).
* Call all registered D-Bus signal handlersMichael Albinus2026-01-141-76/+52
| | | | | | | | | | | | | | | | | | | | * doc/misc/dbus.texi (Signals): All registered signal handlers are called. (Synchronous Methods, Signals, Monitoring Messages): Add function result in examples. * src/dbusbind.c (xd_store_event): New function. (xd_read_message_1): Use it. Call all registered handlers per signal. (Bug#80168) * test/lisp/net/dbus-tests.el (dbus--test-signal-handler): Adapt defun. (dbus--test-signal-handler1, dbus--test-signal-handler2): New defuns. (dbus-test05-register-signal-several-handlers): New test. (dbus-test04-register-method) (dbus-test04-call-method-authorizable) (dbus-test05-register-signal) (dbus-test05-register-signal-with-nils) (dbus-test06-register-property-emits-signal): Adapt tests.
* Inhibit unused variable warning in NSTRACE_WHEN (bug#80096)Stéphane Marks2026-01-131-1/+1
| | | | | * src/nsterm.h (NSTRACE_WHEN): Mark 'nstrace_saved_enabled_global' as unused.
* Add frame identifiers (bug#80138)Stéphane Marks2026-01-138-0/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A unique frame id is assigned to a new or cloned frame, and reused on an undeleted frame. The id facilitates unambiguous identification among frames that share identical names or titles, deleted frames where a live frame object no longer exists that we can resurrect by id, for example via 'tab-bar-undo-close-tab'. It also aids debugging at the C level using the frame struct member id. Rewrite 'clone-frame' and 'undelete-frame' to not let bind variables that 'make-frame' uses to avoid conflicts with nested 'make-frame' calls, for example via 'after-make-frame-functions'. * lisp/frame.el (clone-frame, undelete-frame): Use 'frame--purify-parameters' to supply parameters explicitly. (undelete-frame--save-deleted-frame): Save frame id for restoration. (undelete-frame): Restore frame id. (frame--purify-parameters): New defun. (make-frame): Assign a new id for a new or cloned frame, reuse for undeleted frame. * src/frame.h (struct frame): Add id member. (frame_next_id): New extern. * src/frame.c (frame_next_id): New global counter. (frame_set_id, frame_set_id_from_params): New function. (Fframe_id): New DEFUN. (syms_of_frame <Sframe_id>): New defsubr. (syms_of_frame <Qinternal_id>): New DEFSYM. (syms_of_frame <frame_internal_parameters>): Add 'Qinternal_id'. * src/androidfns.c (Fx_create_frame): * src/haikufns.c (Fx_create_frame): * src/nsfns.m (Fx_create_frame): * src/pgtkfns.c (Fx_create_frame): * src/w32fns.c (Fx_create_frame): * src/xfns.c (Fx_create_frame): Call 'frame_set_id_from_params'. * doc/lispref/frames.texi: Add documentation. * etc/NEWS: Announce frame id.
* Fix crash where dead frame remains on list of live frames (Bug#80120)Martin Rudalics2026-01-113-3/+27
| | | | | | | * src/fns.c (delq_no_quit): New function. * src/lisp.h: Extern delq_no_quit. * src/frame.c (delete_frame): Call delq_no_quit to remove frame from Vframe_list uninterruptedly (Bug#80120).
* ; NS: Fix typo in -resetCursorRects implementationsYavor Doganov2026-01-101-4/+4
| | | | | | * src/nsterm.m ([EmacsView resetCursorRects]): Fix typo in selector name; restrict respondsToSelector: check to Cocoa. ([EmacsScroller resetCursorRects]): Likewise. (Bug#80098)
* NS: Use Cocoa implementation of EmacsBell -init if named image is declaredYavor Doganov2026-01-101-1/+1
| | | | | | | * configure.ac: Check for 'NSImageNameCaution' declaration when building on GNUstep. * src/nsterm.m ([EmacsBell init]): Use fallback implementation on GNUstep only if 'NSImageNameCaution' is not declared. (Bug#80107)
* Less stingy lisp-eval-depth supply for debuggerMattias Engdegård2026-01-091-6/+7
| | | | | | * src/eval.c (call_debugger, signal_or_quit): Raise extra headroom to 200 levels. The debugger is sometimes entered via handler-bind so we raise the bar there as well (bug#80154).
* ; Fix doc-string of Fset_frame_positionMartin Rudalics2026-01-061-4/+5
| | | | | * src/frame.c (Fset_frame_position): In doc-string say that for a child frame X and Y are relative to FRAME's parent frame.
* Fix calculation of outer frame height in NS builds (Bug#80077)Martin Rudalics2026-01-051-2/+3
| | | | | * src/nsfns.m (frame_geometry): Include tool bar height when calculating a frame's outer height (Bug#80077).
* ; * src/keyboard.c: Fix style in two comments.Sean Whitton2026-01-041-2/+3
|
* ; * src/window.c (Fwindow_cursor_info): More cleanup.Eli Zaretskii2026-01-031-1/+1
|
* Unbreak a build --without-xEli Zaretskii2026-01-031-3/+15
| | | | | * src/window.c (Fwindow_cursor_info): Provide values for TTY frames. (Bug#80023)
* ; * src/window.c (Fwindow_cursor_info): Doc fix.Eli Zaretskii2026-01-031-1/+1
|
* New function 'window-cursor-info'RadioNoiseE2026-01-031-0/+36
| | | | | | | * src/window.c (Fwindow_cursor_info): New function. (syms_of_window): Defsubr it. * doc/lispref/windows.texi (Window Point): Document it. * etc/NEWS: Announce new function. (Bug#80023)
* Add frame parameters 'cloned-from' and 'undeleted' (bug#80104)Stéphane Marks2026-01-031-0/+4
| | | | | | | | | | | | * lisp/frame.el (clone-frame): Set the frame parameter 'cloned-from'. (undelete-frame): Set the frame parameter 'undeleted'. * src/frame.c (syms_of_frame): <Qcloned_from> <Qundeleted>: New DEFSYM. (syms_of_frame): Add 'Qcloned_from' and 'Qundeleted' to 'frame_internal_parameters'. * doc/lispref/frames.texi: Document these frame parameters. * etc/NEWS: Announce the new frame parameters.
* ; * src/lread.c (Feval_buffer): Fix typo in docstring.Michael Albinus2026-01-031-1/+1
|
* ; Fix documentation of recent treesit changesEli Zaretskii2026-01-021-2/+2
| | | | | | | * etc/NEWS: * src/treesit.c (Ftreesit_query_eagerly_compiled_p): * doc/lispref/parsing.texi (Pattern Matching): Fix documentation of the recent treesit-related changes. (Bug#80108)
* Compile queries in treesit-f-l-recompute-features (bug#80108)Yuan Fu2026-01-011-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The direct cause of the problem in the bug report is that when user runs treesit-font-lock-recompute-features to add the emacs-devel feature in c-ts-mode's mode hook, the added query for emacs-devel aren't compiled. This change consists of two parts: 1. The immediate fix: validate and compile queries in treesit-font-lock-recompute-features. 2. To make it more fool-proof, change treesit-font-lock-rules back to compile the queries and make treesit--compile-query-with-cache support compiled queries. This way, as long as the query goes through treesit-font-lock-rules, it'll be compiled eventually and not cause slow-down. I had to add some c-level functions, but they're kind of overdue anyway, so I don't have any problem adding them to the API. * lisp/treesit.el (treesit--compile-query-with-cache): Support compiled queries. (treesit-font-lock-rules): Compile the queries (but not eagerly). (treesit-font-lock-recompute-features): Validate and compile queries. (treesit-major-mode-setup): Remove call to treesit-validate-and-compile-font-lock-rules since it's now called in treesit-font-lock-recompute-features. * src/treesit.c (Ftreesit_query_eagerly_compiled_p): (Ftreesit_query_source): New functions. * doc/lispref/parsing.texi (Pattern Matching): Add manual entries for the new functions.
* ; * src/keyboard.c (is_ignored_event): Delete redundant assignment.Po Lu2026-01-021-1/+0
|
* ; Add 2026 to copyright years.Sean Whitton2026-01-01268-276/+279
|
* ; * src/keyboard.c (is_ignored_event): Fix last change.Sean Whitton2026-01-011-0/+3
|
* Don't permit special configuration events to trigger `throw-on-input'Po Lu2026-01-011-12/+38
| | | | | | | | | * src/keyboard.c (init_while_no_input_ignore_events): Ignore Qmonitors_changed and Qtoolkit_theme_changed events. (is_ignored_event): Assign symbols to {MONITOR_CHANGED,TOOLKIT_THEME_CHANGED}_EVENT. (syms_of_keyboard) <Qmonitors_changed> <Qtoolkit_theme_changed>: New symbols. (bug#80022)
* Inhibit looping in resize_mini_window (Bug#80017)Martin Rudalics2025-12-301-2/+7
| | | | | | * src/xdisp.c (redisplay_window): Don't call resize_mini_window when the minibuffer is active and minibuffer-only frames shall be resized automatically since that can loop infinitely (Bug#80017).
* December 2025 spelling fixesPaul Eggert2025-12-2612-23/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some of the fixes are to continue to use American rather than British spelling. * doc/misc/modus-themes.org (my-modus-themes-engraved-faces): Fix misspelled ‘:foreground’s. * etc/themes/modus-themes.el (modus-themes-faces): Fix misspelled ‘modus-themes-bold’. * lisp/emacs-lisp/rx.el (rx--normalize-char-pattern): Rename from rx--normalise-char-pattern. (rx--optimize-or-args): Rename from rx--optimise-or-args. * lisp/frame.el (frame--special-parameters): Fix misspelled "right-divider-width". * lisp/net/tramp.el (tramp-fingerprint-prompt-regexp): Use American spelling “centered”, to match current libfprintf. * lisp/org/org-fold-core.el (org-fold-core--optimize-for-huge-buffers): Rename from org-fold-core--optimise-for-huge-buffers. (org-fold-core-update-optimization): Rename from org-fold-core-update-optimisation, leaving an alias behind. (org-fold-core-remove-optimization): Rename from org-fold-core-remove-optimisation, leaving an alias behind. * lisp/org/org.el (org-advertized-archive-subtree): This alias is now obsolete. * lisp/play/zone.el (zone-ignored-buffers): Fix misspelling of ‘zone--buffer-encrypted-p’. * lisp/progmodes/csharp-mode.el (csharp-ts-mode-faces): Fix misspelling of ‘csharp’ group. * lisp/vc/vc.el (vc-clonable-backends-custom-type): Rename from vc-cloneable-backends-custom-type, leaving an alias behind. * test/lisp/emacs-lisp/bytecomp-tests.el: (bytecomp-tests--warn-arity-non-compiled-callee): Rename from bytecomp-tests--warn-arity-noncompiled-callee. (bytecomp-test-defface-spec): Reword a deliberate misspelling of “default” that is so common I don’t want it to pollute the spelling dictionary. * test/lisp/emacs-lisp/package-vc-tests.el: (package-vc-tests-preserve-artifacts): Rename from package-vc-tests-preserve-artifacts. * test/lisp/eshell/em-prompt-tests.el: (em-prompt-test/forward-backward-paragraph-1): Reword a deliberate misspelling of “goodbye” that is so common I don’t want it to pollute the spelling dictionary.
* Add ns_set_window_size_and_positionStéphane Marks2025-12-242-16/+66
| | | | | | | | | * src/frame.c (Fset_frame_size_and_position_pixelwise): Correct docstring typo. * src/nsterm.m (compute_offset): New function of common code. (ns_set_offset): Call compute_offset. (ns_set_window_size_and_position): New function. (ns_create_terminal): Add new function to the hook.
* In Fns_progress_indicator fix GNUstep enum spelling (bug#79859)Stéphane Marks2025-12-241-0/+5
| | | | | | * src/nsfns.m (Fns_progress_indicator): GNUstep spells its level indicator enum NSContinuousCapacityLevelIndicatorStyle vs. macOS NSLevelIndicatorStyleContinuousCapacity.
* Improve documentation of 'word-combining-categories'Eli Zaretskii2025-12-241-5/+12
| | | | | * src/category.c (syms_of_category) <word-combining-categories>: Doc fix. (Bug#80042)
* ; * src/frame.c (Fmake_frame_invisible): Don't skip setting frame invisible.Gerd Möllmann2025-12-231-5/+6
|
* Implement set_window_size_and_position_hook on AndroidPo Lu2025-12-233-3/+62
| | | | | | | | | | | | | | | | | * java/org/gnu/emacs/EmacsWindow.java (moveResizeWindow): New method, which alters all of the bounding box of a window at once. * src/android.c (android_init_emacs_window): Load method `move_resize_window'. (android_move_resize_window): Invoke this method, rather than a sequence of operations that will produce two ConfigureNotify events. * src/androidterm.c (android_set_window_size_and_position_1) (android_set_window_size_and_position): New functions; ported from X. (android_create_terminal): Register the same.
* Fix handling of border face on tty child frames (bug#80043)Gerd Möllmann2025-12-221-19/+46
| | | | | | | | * src/dispnew.c (box_from_display_table, box_default, box_glyph): New functions, extracted from produce_box_glyphs. (box_from_display_table): Merge face nwith glyph's face. (box_default): Lookup face. (produce_box_glyphs): Use new functions.
* ; Improve documentation of 'font-spec'Eli Zaretskii2025-12-221-2/+4
| | | | | | * src/font.c (Ffont_spec): * doc/lispref/display.texi (Low-Level Font): More accurate documentation of 'font-spec's arguments.
* ; * src/editfns.c (styled_format): fix build for C99 compilersMattias Engdegård2025-12-221-1/+1
|
* Add functions to set frame size and position in one compound stepMartin Rudalics2025-12-227-23/+304
| | | | | | | | | | | | | | | | | | | | | | | | | * lisp/frame.el (set-frame-size-and-position): New function. * src/frame.c (adjust_frame_size): Handle requests to set size and position. (Fset_frame_size_and_position_pixelwise): New function. * src/gtkutil.c (xg_frame_set_size_and_position): New function. (xg_wm_set_size_hint): Handle any non-NorthWestGravity values for child frames only. Some GTK implementations don't like them. * src/gtkutil.h (xg_frame_set_size_and_position.): Add external declaration. * src/termhooks.h (set_window_size_and_position_hook): New hook. * src/w32term.c (w32_set_window_size_and_position): New function. (w32_create_terminal): Make it the Microsoft Windows API set_window_size_and_position_hook. * src/xterm.c (x_set_window_size_and_position_1) (x_set_window_size_and_position): New functions. (x_create_terminal): Make x_set_window_size_and_position the set_window_size_and_position_hook for the X protocol. * src/xterm.h (x_set_window_size_and_position): Add external declaration. * etc/NEWS: Announce new functions.
* Simplify new %b/%B code many years from nowPaul Eggert2025-12-221-1/+13
| | | | | | * src/editfns.c (styled_format): Do %b and %B with sprintf if sprintf is known to support them. This will let us simplify this code many years from now. (Bug#79990)
* Add binary format specifications '%b' and '%B'Jacob S. Gordon2025-12-221-12/+42
| | | | | | | | | | | | | | | | These produce the binary representation of a number. '%#b' and '%#B' prefix with '0b' and '0B', respectively. (bug#79990) * etc/NEWS: Announce change. * doc/lispref/strings.texi (Formatting Strings): Describe new format specs and add to comment on reconstructing the value with 'read'. * src/editfns.c (format): Update doc string. (styled_format): Add support for '%b' and '%B'. To remain portable, avoid use of 'sprintf' by converting by hand. * test/src/editfns-tests.el (format-binary-zero, format-binary-floats) (format-binary-nonzero-integers): Add tests. (read-large-integer): Add binary test cases. Co-authored-by: Paul Eggert <eggert@cs.ucla.edu>
* ; Fix coding style in w32fns.cPo Lu2025-12-221-14/+14
| | | | | * src/w32fns.c (Fw32_badge, syms_of_w32fns): Stylistic corrections.
* Remove binary-as-unsigned (bug#79990)Paul Eggert2025-12-211-25/+3
| | | | | | This experimental variable caused more trouble than it cured: it was rarely used, and when used it tended to be used incorrectly. * src/editfns.c (binary-as-unsigned): Remove. All uses removed.
* ; Fix system-taskbar-badges on MS-WindowsEli Zaretskii2025-12-211-2/+2
| | | | | | | | * src/w32fns.c (Fw32_badge): Fix typos in specifying color values. * lisp/system-taskbar.el (system-taskbar-w32-badge-background) (system-taskbar-w32-badge-foreground): Adjust to Windows conventions. (Bug#79859)
* System GUI taskbar and progress reporter hooks (bug#79859)Stéphane Marks2025-12-212-0/+455
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement system GUI taskbar/dock/launcher icon badge, icon progress indicator, icon attention alert features for D-Bus platforms (tested on KDE and GNOME), NS (macOS/GNUstep), MS-Windows. Add 'progress-reporter-update-functions' abnormal hook to facilitate taskbar progress display, and other custom progress reporters. The default function list is 'progress-reporter-echo-area' which is backward compatible. * lisp/subr.el (progress-reporter-update-functions): New defvar. (progress-reporter-echo-area): New defun. (progress-reporter-do-update): Run progress-reporter-update-functions for both numerical and pulsing reporters. (progress-reporter-done): Run progress-reporter-done-functions. * lisp/system-taskbar.el: New file. * src/nsfns.m (Fns_badge, Fns_progress_indicator) (Fns_request_user_attention): New function. (syms_of_nsfns): Add defsubr Sns_badge, Sns_request_user_attention, Sns_progress_indicator. Add DEFSYM Qinformational, Qcritical. * src/w32fns.c (rgb_list_to_colorref, Fw32_badge) (Fw32_request_user_attention, Fw32_progress_indicator): New function. (syms_of_w32fns): Add defsubr Sw32_badge, Sw32_progress_indicator, Sw32_request_user_attention. Add DEFSYM Qinformational, Qcritical. * doc/emacs/frames.texi: User documentation. * doc/lispref/os.texi: Programmer documentation. * etc/NEWS: Announce system-taskbar-mode. Announce progress reporter callback enhancements.
* ; Avoid compilation warnings in xwidget.c on macOSEli Zaretskii2025-12-211-10/+9
| | | | | * src/xwidget.c (Fxwidget_perform_lispy_event): Avoid compiler warnings about set but not used variables. (Bug#80044)
* Improve handling of non-ASCII characters in 'transpose-regions'Jens Schmidt2025-12-201-62/+91
| | | | | | | | | | | * src/editfns.c (Ftranspose_regions): Separate code related to character semantics from that related to byte semantics and in that way leverage optimizations for regions of equal length with respect to both semantics. Move and update comments dating back to the initial implementation. * test/src/editfns-tests.el (editfns-tests--transpose-regions-tests) (editfns-tests--transpose-regions-markups) (editfns-tests--transpose-regions): New test and accompanying variables.
* Fix byte-vs-char length issue in 'transpose-regions'Jens Schmidt2025-12-201-7/+9
| | | | | | * src/editfns.c (Ftranspose_regions): Calculate length of range between regions both in units of bytes and characters and use these values as appropriate.
* Don't change visibility of tty root frames (Bug#80032)Martin Rudalics2025-12-201-18/+12
| | | | | | * src/frame.c (Fmake_frame_visible, Fmake_frame_invisible): * doc/lispref/frames.texi (Visibility of Frames): Don't change visibility of tty root frames. (Bug#80032)
* Revert to simpler (and we hope faster) TAGGEDPPaul Eggert2025-12-191-8/+2
| | | | | | | | | | | | | | | | | Suggested by Mattias Engdegård (bug#80021#17). * src/lisp.h (lisp_h_FIXNUMP, lisp_h_TAGGEDP): Go back to the simpler (X&7) == TAG approach for checking object tags. This reverses my commit ccdb08ef4ed8f96e79aa06cf5e806c9c487d58ad “Improve performance of CONSP, FIXNUMP, etc.” dated 2018-08-25 13:39:18 -0700, though it keeps the TAGGEDP function the older commit introduced. Although the older commit improved performance on its circa 2010 platform, when I ran today’s ‘make -C lisp compile-always’ benchmark on Ubuntu 25.10 which uses gcc (Ubuntu 15.2.0-4ubuntu4) on an circa-2021 Intel Xeon W-1350, this patch makes the ‘make -C lisp compile-always’ benchmark 3.1% faster. Although the patch unfortunately also makes the Emacs text segment 0.6% larger, in this case speed and simplicity beat text size in importance.
* Don't make tty child frames visible when selected (bug#80020)Gerd Möllmann2025-12-191-10/+3
| | | | | | * src/frame.c (do_switch_frame): Don't change visibility of tty child frames. (Fraise_frame): Doc string fix.