summaryrefslogtreecommitdiff
path: root/src/xterm.c
AgeCommit message (Collapse)Author
2026-06-04Avoid background fills on parent during child frame resize/move/hideDmitry Gutov
* src/xterm.c (x_suspend_background_fills) (x_restore_background_fills): New functions. (x_set_window_size, x_set_window_size_and_position) (x_make_frame_invisible): Use them (bug#80961).
2026-05-26ARRAYELTS → countofPaul Eggert
C2y will standardize countof as the macro that Emacs uses the name ARRAYELTS for. Switch to the standard name, which is supported by GCC 16+, by Clang 21, and by the Gnulib stdcountof-h module already in use for compilers that do not support countof. Also, use countof in a few places where we missed using ARRAYELTS. * admin/coccinelle/arrayelts.cocci: Suggest countof, not ARRAYELTS. * admin/merge-gnulib (GNULIB_MODULES): Add stdcountof-h, as it is now a direct rather than an indirect dependency. * exec/trace.c, src/lisp.h, src/sfnt.c: Include <stdcountof.h>. (ARRAYELTS): Remove. All uses replaced by countof. * lib-src/ebrowse.c, lib-src/etags.c, lib-src/make-docfile.c: * lib-src/seccomp-filter.c, lwlib/lwlib-Xaw.c: Prefer <stdcountof.h> and countof to doing things by hand.
2026-05-26Omit useless casts found by GCC 16Paul Eggert
GCC 16’s -Wuseless-cast warning can be useful. Fix the useless casts it identifies, and also fix false positives by using compound literals, which are safer anyway than casts. * src/composite.c (composition_adjust_point) (Ffind_composition_internal): * lwlib/xlwmenu.c (xlwMenuResources, xlwMenuClassRec) (resource_widget_value, XlwMenuDestroy, Select): * src/alloc.c (process_mark_stack): * src/data.c (Faref): * src/emacs-module.c (module_extract_big_integer): * src/fileio.c (Finsert_file_contents): * src/frame.h (FRAME_MESSAGE_BUF_SIZE): * src/gtkutil.c (xg_tool_item_stale_p, update_frame_tool_bar): * src/image.c (pbm_load, png_load_body, jpeg_load_body) (tiff_load, gif_load): * src/pdumper.c (ptrdiff_t_to_dump_off, dump_queue_dequeue) (field_relpos, dump_field_emacs_ptr) (dump_object_start_pseudovector, pdumper_remember_scalar_impl) (pdumper_load, syms_of_pdumper): * src/regex-emacs.c (BUF_PUSH, BUF_PUSH_2, POINTER_TO_OFFSET): * src/xdisp.c (remember_mouse_glyph, pint2str): * src/xterm.c (cvt_string_to_pixel, handle_one_xevent): Omit useless casts. Perhaps they were formerly needed, but they should not be needed now. * src/alloc.c (Fmemory_info): * src/category.c (Fdefine_category, Fmodify_category_entry): * src/data.c (Fash): * src/dispextern.h (GLYPH_CODE_P): * src/emacs.c (load_seccomp): * src/fns.c (Flocale_info, maybe_resize_hash_table): * src/indent.c (check_display_width): * src/json.c (symset_size): * src/lisp.h (XUNTAG, BOOL_VECTOR_LENGTH_MAX, obarray_size) (hash_table_index_size): * src/lread.c (make_obarray, grow_obarray, Fobarray_clear): * src/menu.c (digest_single_submenu, x_popup_menu_1): * src/term.c (init_tty): * src/widget.c (update_wm_hints): * src/xdisp.c (truncate_echo_area): * src/xfns.c (x_set_border_pixel): * src/xfont.c (xfont_match, xfont_open): * src/xmenu.c (set_frame_menubar): * test/src/emacs-module-resources/mod-test.c (emacs_module_init): Use compound literal instead of a cast that is useless in some platforms but not others. * src/dispextern.h, src/haikugui.h, src/w32gui.h: (WINDOW_HANDLE_UINTPTR): New macro. * src/frame.c (gui_report_frame_params): * src/xterm.c (x_try_cr_xlib_drawable): Use it. * src/lisp.h (XUNTAG): And tag with UINTPTR_MAX to pacify gcc warning about a constant out of range. (hash_idx_t): Make it int_least32_t, as it need not be exactly 32 bits. (PRIdHASH_IDX): New macro. * src/pdumper.c (dump_queue_dequeue): Use it. * src/profiler.c (setup_cpu_timer): Make a local EMACS_INT rather than int, to avoid need for casting later. * src/syntax.c (uninitialized_interval): Use 1u rather than 1 so the cast is always useful. A compound literal wouldn’t do here, as this macro needs to be an integer constant expression. * src/xfns.c (XICCallback, XICProc): Remove macros. (Xxic_preedit_start_callback): Use a cleaner way to specify it, avoiding the need for type macros, and for a cast if HAVE_XICCALLBACK_CALLBACK. * src/xterm.c (handle_one_xevent): 2nd arg is now XEvent * on all platforms, as there is no need to diverge, and diverging meant we needed lots of unnecessary casts.
2026-05-23Be more careful about size multiplicationPaul Eggert
* src/alloc.c (xcalloc): New function. * src/dispnew.c (save_current_matrix): * src/fns.c (Finternal__hash_table_histogram): * src/nsfns.m (Fns_display_monitor_attributes_list): * src/pgtkfns.c (Fpgtk_display_monitor_attributes_list): * src/pgtkselect.c (pgtk_own_selection): * src/profiler.c (make_log): * src/sfnt.c (sfnt_poly_edges_exact): * src/xfns.c (x_get_monitor_attributes_xinerama) (x_get_monitor_attributes_xrandr, Fx_display_monitor_attributes_list): Use it instead of multiplying by hand, conceivably with overflow. * src/profiler.c (make_log): Check for overflow in internal size calculations. Use xnmalloc instead of multiply + xmalloc. * src/sfnt.c (xzalloc) [TEST]: Remove, replacing with ... (xicalloc) [TEST]: ... this new function. All callers changed. (eassert) [TEST]: New macro. * src/treesit.c (treesit_calloc_wrapper): Remove, replacing its use with xcalloc.
2026-05-23Fix misleading x_dnd_begin_drag_and_drop APIPaul Eggert
* src/xterm.c (x_dnd_begin_drag_and_drop): The n_ask_actions arg is an int, not a size_t, as XChangeProperty supports only int and our caller passes an int.
2026-05-23New function memory_full_upPaul Eggert
* src/alloc.c (memory_full_up): New function. Replace all callers of memory_full (SIZE_MAX) with callers to this function. This simplifies callers and should make future changes easier. It also saves a whopping 296 bytes in executable size with gcc 16.1.1 20260515 (Red Hat 16.1.1-2) x86-64.
2026-05-19Make X_ERROR_MESSAGE_SIZE dependency more explicitPaul Eggert
This avoids an alloca in x_set_mouse_color. * src/xfns.c (x_set_mouse_color): Use local array rather than alloca, since the string is small. * src/xterm.c (X_ERROR_MESSAGE_SIZE): Move defn from here ... * src/xterm.h: ... to here, and make it an enum not a macro.
2026-05-11[GTK3] On Expose, repaint the border before the contentDmitry Gutov
* src/xterm.c (handle_one_xevent): Move the x_clear_under_internal_border call before expose_frame, for less chance of implicit flush to screen in between (bug#80662).
2026-05-07[GTK3] Move the frame to position before showingDmitry Gutov
* src/xterm.c (x_make_frame_visible): Move XMoveWindow call before gtk_widget_show_all, so that the move happens before the frame become visible (bug#80662).
2026-05-06Fix flicker of child frame right after make-frame-visibleDmitry Gutov
* src/xterm.c (x_make_frame_visible): Call SET_FRAME_GARBAGED before making a child frame visible (bug#80943).
2026-05-01Don't wait out the whole event timeout unnecessarilyDmitry Gutov
* src/xterm.c (x_wait_for_event): If f->wait_event_type has been cleared (in handle_one_xevent), don't go into pselect wait. * src/androidterm.c (android_wait_for_event): Likewise.
2026-05-01Try to resize or resize-and-move child frames in one updateDmitry Gutov
This pertains to X11 toolkit builds. Other ports (including PGTK) seem to have mostly atomic window updates already. * src/xterm.c (x_set_window_size_1): Resize the Xt widget eagerly, so the next redraw is not clipped. Update the "desired" Cairo surface dimensions. Skip waiting for next XEvent. Do all that for child frames only. Update old comments (bug#80662). (x_set_window_size_and_position_1): Same. Also clear the widget's cached position coordinates (we don't keep them up to date). (x_set_window_size, x_set_window_size_and_position): Skip redrawing the border on child frames, it will happen during redisplay anyway. * src/gtkutil.c (xg_frame_set_size_and_position): On child frames, resize the GTK widget hierarchy immediately. Update the "desired" Cairo surface dimensions. Skip waiting for events. * src/widget.c (EmacsFrameResize): When resize should be a no-op, exit early (minor optimization). (EmacsFrameExpose): Redraw the border on the last Expose event. * src/xdisp.c (clear_garbaged_frames): Don't redraw borders here. * src/xfns.c (x_window): Undo the previous change in bit_gravity in the no-toolkit build. StaticGravity works the best for it thanks to no nesting in window configuration.
2026-04-24Don't modify kbd_fetch_ptr in x_delete_selection_requests (bug#80863)Pip Cet
This code may be called from within the loop in process_special_events which assumed kbd_fetch_ptr remains unchanged. This caused a buffer underflow which resulted in the entire kbd buffer being replayed. * src/xterm.c (x_delete_selection_requests): Simply clear deleted events rather than rotating the kbd buffer.
2026-04-10Don't continue FOR_EACH_FRAME loops after delete_frame (bug#80789)Pip Cet
* src/xterm.c (x_connection_closed, x_delete_terminal): Restart FOR_EACH_FRAME loops after deleting one (or potentially more) frames.
2026-04-10Don't accept dead selected_frame in x_connection_closed (bug#80789)Pip Cet
* src/xterm.c (x_connection_closed): Try to restore frame if the selected frame is dead. If that fails, abort.
2026-03-22Fix no-focus-on-map on X without GTKBasil L. Contovounesios
* src/xterm.c [!USE_GTK] (x_update_frame_user_time_window): When replacing _NET_WM_USER_TIME with a new _NET_WM_USER_TIME_WINDOW and the frame has requested no-focus-on-map, ensure _NET_WM_USER_TIME is zero also on the new _NET_WM_USER_TIME_WINDOW. (x_make_frame_visible) [!USE_GTK]: Don't overwrite _NET_WM_USER_TIME before mapping a frame that has requested no-focus-on-map, and whose _NET_WM_USER_TIME should thus remain zero (bug#80525).
2026-01-01; Add 2026 to copyright years.Sean Whitton
2025-12-22Add functions to set frame size and position in one compound stepMartin Rudalics
* 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.
2025-12-09Port back to GTK2Paul Eggert
Problem reported by Sven Joachim in: https://lists.gnu.org/r/emacs-devel/2025-12/msg00225.html * src/xterm.c (xi_frame_selected_for): Also define if !(defined USE_GTK && defined HAVE_GTK3).
2025-12-09; Fix a typo in xterm.[ch].Eli Zaretskii
2025-12-08Fix some C symbol extern visibilityPaul Eggert
Make some C symbols static if they don’t need to be extern. Also, remove a couple of functions that were discovered to be unused as a result of this process, and mark two extern functions intended to be usable from GDB. * src/buffer.c (previous_overlay_change): * src/composite.c (composition_lisp_table): * src/fileio.c (file_name_directory): * src/frame.c (check_tty): * src/insdel.c (adjust_markers_for_insert): * src/keyboard.c (unread_switch_frame, read_char) (requeued_events_pending_p): * src/sysdep.c (renameat_noreplace) [!HAVE_ANDROID]: * src/textconv.c (get_conversion_field) [!HAVE_ANDROID]: * src/treesit.c (TREESIT_BOB_LINECOL, TREESIT_TS_POINT_1_0) (treesit_buf_tracks_linecol_p, make_treesit_parser) (make_treesit_node): * src/xdisp.c (x_y_to_hpos_vpos): * src/xfaces.c (load_color) [!MSDOS]: * src/xfns.c (x_real_pos_and_offsets): * src/xterm.c (x_dnd_do_unsupported_drop): Now static. Move up if necessary. * src/coding.c (utf8_string_p): * src/keyboard.c (detect_input_pending_ignore_squeezables): Remove; unused. * src/frame.c (gui_set_alpha): * src/textconv.c (start_batch_edit, end_batch_edit, commit_text) (finish_composing_text, set_composing_text) (set_composing_region, textconv_set_point_and_mark) (delete_surrounding_text, request_point_update) (textconv_barrier, replace_text, get_extracted_text) (get_surrounding_text): * src/xdisp.c (gui_union_rectangles): * src/xterm.c (xi_frame_selected_for): Define only if needed. * src/treesit.c (treesit_debug_print_parser_list) (treesit_debug_print_linecol): Declare EXTERNALLY_VISIBLE. * src/xdisp.c (x_y_to_column_row): New function, defined only if needed. All external callers to x_y_to_hpos_vpos changed.
2025-09-27Prefer coarse timestamps when using X syncPaul Eggert
They are good enough for this purpose, and are cheaper to get. * src/timefns.c (monotonic_coarse_timespec): New function. * src/xterm.c [HAVE_XSYNC && !USE_GTK && HAVE_CLOCK_GETTIME]: (x_sync_current_monotonic_time): Use it. (CLOCK_MONOTONIC): Remove; no longer uneeded here.
2025-09-04Fix crash when the same XI device appears in multiple hierarchy eventsPo Lu
* src/xterm.c (xi_disable_devices): Move `out' label into the outermost loop. (bug#79343)
2025-07-26Add frame parameter which allows border transparencyGarklein
The new 'borders-respect-alpha-background' frame parameter, when set to 't', will make window dividers and internal borders respect the 'alpha-background' frame parameter. This allows transparent gaps between windows. * doc/lispref/frames.texi (Font and Color Parameters): Document the change. * src/frame.c (frame_parm_table, syms_of_frame) (gui_set_borders_respect_alpha_background): * src/frame.h (struct frame): Add frame parameter. * src/androidfns.c (x_create_frame, android_create_tip_frame) (android_frame_parm_handlers): * src/haikufns.c (haiku_create_frame, haiku_create_tip_frame) (haiku_frame_parm_handlers): * src/nsfns.m (ns_frame_parm_handlers, x_create_frame): * src/w32fns.c (x_create_frame, w32_create_tip_frame) (w32_frame_parm_handlers): Add dummy parameters for backends that don't support opacity. * src/pgtkfns.c (pgtk_frame_parm_handlers, x_create_frame) (pgtk_create_tip_frame): * src/pgtkterm.c (pgtk_draw_window_divider): * src/xfns.c (x_create_frame, x_create_tip_frame) (x_frame_parm_handlers) * src/xterm.c (x_draw_window_divider) (x_clear_under_internal_border): Implement parameter on backends that support opacity.
2025-06-28Properly invalidate XRender surfaces when only EmacsFrame is resizedPo Lu
* src/xterm.c (handle_one_xevent): Drop XRender surfaces when the frame widget is resized, rather than when the toplevel is. (bug#77988)
2025-05-05Synchronize Android and Haiku terminal frontends with XPo Lu
* src/androidterm.c (handle_one_android_event): * src/haikuterm.c (haiku_read_socket): Port recent changes to handle_one_xevent.
2025-05-04Fix support of 'mouse-highlight' on X (bug#78218)Gerd Möllmann
* src/xterm.c (handle_one_xevent): Fix comparison with tool-bar and tab-bar window.
2025-04-22; Fix thinko in recent commitStefan Kangas
2025-04-19xterm.c: Move GTK3-specific variables into narrower scopesStefan Kangas
Avoid declaring GTK3-specific variables in larger-than-necessary scopes, especially under #ifdefs. Instead, declare them where used. This improves readability and reduces #ifdef clutter without changing behavior. * src/xterm.c: [HAVE_GTK3] (x_update_opaque_region): (XTframe_up_to_date, x_new_focus_frame, handle_one_xevent) (x_ignore_errors_for_next_request, x_stop_ignoring_errors): Clean up variable declarations.
2025-04-13Use a pristine copy of argv to restart EmacsJens Schmidt
argv as left after main has proccessed the command-line can differ both in order and contents of the original command-line arguments, which can lead to surprising results when restarting emacs on the cooked argv through `kill-emacs'. Starting from that observation, consistenly use variables 'initial_cmdline' on Windows, 'initial_argc', 'initial_argv' on non-Windows, and 'initial_argv0' in all ports. * src/lisp.h: Declare 'initial_argv0', limit declaration of 'initial_argv' and 'initial_argc' to non-Windows ports. * src/emacs.c: Likewise, but for the definitions. (init_cmdargs): Move initialization of 'initial_argv' and 'initial_argc' ... (copy_args) [!WINDOWSNT]: ... to this new function ... (main): ... and call that in 'main', also initializing 'initial_argv0' before the command-line processing. * src/emacs.c (Fkill_emacs): * src/pgtkterm.c (pgtk_term_init): * src/sysdep.c (emacs_perror): * src/xterm.c (x_term_init): Use 'initial_argv0' where only that is required. (Bug#77389)
2025-03-10Fix bug#76805Po Lu
* src/xterm.c (x_fast_mouse_position): Clear the mouse_moved flag whether or not mouse motion is reported, to avoid repeated polling for mouse movement. (bug#76806)
2025-03-03Revert “Avoid some union buffered_input_event uses”Paul Eggert
Revert my commit 29a9fd4f4ba17822eca0f00c2037da3868bd874e and the following commit 1ec0889e7b786d79351cee3ed4964d82295f059f. This fixes a bug where ‘emacs -nw’ would sometimes freeze when Emacs is configured with ‘--with-pgtk --enable-link-time-optimization --disable-gc-mark-trace’ on GNU/Linux x86-64 (Bug#76729). As it is not yet clear whether this freeze is due to an Emacs bug that I introduced, or due to GCC bug 117423 <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117423>, play it safe for now and revert to the previous state.
2025-03-03Avoid some union buffered_input_event usesPaul Eggert
Simplify by using separate local vars for struct input_event and struct selection_input_event, rather than a single local var that is the union of the two. This makes the code easier to follow by the human reader, and should help avoid GCC bug 117423 <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117423> and therefore work around Emacs bug 76559 <https://bugs.gnu.org/76559>. * src/androidterm.c (handle_one_android_event): * src/gtkutil.c (xg_widget_key_press_event_cb): * src/pgtkterm.c (evq_flush): * src/xterm.c (handle_one_xevent): Use struct input_event and kbd_buffer_store_event_hold, or struct selection_input_event and kbd_buffer_store_selection_event_hold, rather than union buffered_input_event and union buffered_input_event. * src/keyboard.c (beware_long_paste, maybe_quit_while_no_input): New functions, broken out from kbd_buffer_store_buffered_event. (kbd_buffer_store_event_hold): Define here, with a simplified version of the body of the old kbd_buffer_store_buffered_event, rather than defining in keyboard.h. Specialize to struct input_event. (kbd_buffer_store_selection_event_hold): New function; it is a simplified version of the old kbd_buffer_store_buffered_event, specialized to struct selection_input_event. (is_ignored_event_kind): Accept enum event_kind instead of union buffered_input_event. All callers changed. * src/keyboard.h (kbd_buffer_store_event_hold): Remove definition, as keyboard.c now defines it. * src/pgtkterm.c (evq_grow_if_needed): New function. (evq_enqueue, evq_selection_enqueue): Two functions now, not one. Args are now struct input_event const * or struct selection_input_event const *, not union buffered_input_event *. All callers changed. This lets us simplify the callers so that they need not use the union.
2025-02-12Handle negative frame position values in xterm.c (Bug#76190)Martin Rudalics
* src/xterm.c (x_calc_absolute_position): Always handle negative positions when XNegative or YNegative were set (Bug#76190).
2025-02-12X11 drag-and-drop correctionsPo Lu
* lisp/x-dnd.el (x-dnd-handle-drag-n-drop-event): Take cdddr of client-message, skipping the selection information. (x-dnd-do-direct-save): Do not erase the local copy of a remote file if it was not in fact copied on behalf of the recipient. (x-dnd-handle-xds-drop): Return proper action. * src/xterm.c (x_term_init): Remove unused variable on non-GTK builds.
2025-02-01Merge branch 'scratch/no-purespace' into 'master'Stefan Kangas
2025-01-26Protect against GCing of last_mouse_windowPaul Eggert
* src/window.c (last_mouse_window): New global var. All static instances removed, and all their uses replaced with this global var. This fixes a very unlikely bug where last_mouse_window was GC’ed and a new window created in its place. It also fixes several places that assumed NIL_IS_ZERO without static_asserting it. (init_window_once): Initialize the new var.
2025-01-26Use gtk_disable_setlocalePaul Eggert
* src/pgtkterm.c (pgtk_term_init): * src/xterm.c (x_term_init): Use gtk_disable_setlocale rather than fixup_locale.
2025-01-26Avoid unlikely int overflow.Paul Eggert
* src/pgtkterm.c (pgtk_term_init): * src/xterm.c (x_term_init): Use a bool, not an int that keeps incrementing, to record whether initialization has occurred.
2025-01-21Don’t silently truncate connection-lost diagnosticPaul Eggert
* src/xterm.c (x_io_error_quitter): Do not silently truncate the diagnostic when a connection is lost to an X server.
2025-01-19Replace call[1-8] with callnStefan Kangas
Since the introduction of the 'calln' macro, the 'call1', 'call2', ..., 'call8' macros are just aliases for the former. This is slightly misleading and potentially unhelpful. The number of arguments N can also easily go out-of-synch with the used alias callN. There is no reason not to replace these aliases with using 'calln' directly. To reduce the risk for mistakes, the tool Coccinelle was used to make these changes. See <https://coccinelle.gitlabpages.inria.fr/website/>. * src/alloc.c, src/androidvfs.c, src/androidfns.c, src/buffer.c: * src/callint.c, src/callproc.c, src/casefiddle.c, src/charset.c: * src/chartab.c, src/cmds.c, src/coding.c, src/composite.c: * src/data.c, src/dbusbind.c, src/dired.c, src/doc.c: * src/emacs.c, src/eval.c, src/fileio.c, src/filelock.c: * src/fns.c, src/frame.c, src/gtkutil.c, src/haikufns.c: * src/haikumenu.c, src/image.c, src/insdel.c, src/intervals.c: * src/keyboard.c, src/keymap.c, src/lisp.h, src/lread.c: * src/minibuf.c, src/nsfns.m, src/nsselect.m, src/pgtkfns.c: * src/pgtkselect.c, src/print.c, src/process.c, src/sort.c: * src/syntax.c, src/textconv.c, src/textprop.c, src/undo.c: * src/w32fns.c, src/window.c, src/xfaces.c, src/xfns.c: * src/xmenu.c, src/xselect.c, src/xterm.c: Replace all uses of 'call1', 'call2', ..., 'call8' with 'calln'.
2025-01-19Prefer 'list (...)' to 'listn (N, ...)'Stefan Kangas
* src/androidfns.c (Fandroid_query_battery): * src/buffer.c (make_lispy_itree_node): * src/keyboard.c (init_while_no_input_ignore_events): * src/window.c (Fset_window_configuration): * src/xterm.c (x_dnd_send_unsupported_drop): Prefer 'list (...)' to 'listn (N, ...)'. * admin/coccinelle/listn.cocci: New file.
2025-01-09In xt_action_hook don't act on deleted window's scroll bar (Bug#75120)Martin Rudalics
* src/xterm.c (xt_action_hook): Make sure window_being_scrolled is live (Bug#75120). * src/pdumper.c (dump_subr): Update pertinent hash of HASH_Lisp_Subr.
2025-01-01Update copyright year to 2025Paul Eggert
Run "TZ=UTC0 admin/update-copyright".
2024-12-19Remove remaining references to redisplay-dont-pauseGerd Möllmann
* src/pgtkfns.c (Fpgtk_print_frames_dialog): Remove reference to Qredisplay_dont_pause. * src/pgtkterm.c (pgtk_cr_export_frames): Remove reference to Qredisplay_dont_pause. * src/xfns.c (Fx_print_frames_dialog): Remove reference to Qredisplay_dont_pause. * src/xterm.c (x_cr_export_frames): Remove reference to Qredisplay_dont_pause.
2024-12-12Pure storage removal: Remove purecopy hash table flagPip Cet
* lisp/emacs-liqsp/comp.el (comp--jump-table-optimizable): Adjust comment. * src/category.c (hash_get_category_set): * src/emacs-module.c (syms_of_module): * src/fns.c (make_hash_table): Remove 'purecopy' flag and update docstring. (Fmake_hash_table): Ignore ':purecopy' argument. * src/frame.c (make_frame): * src/image.c (xpm_make_color_table_h): * src/lisp.h (struct Lisp_Hash_Table): Drop 'purecopy' flag. * src/pdumper.c (dump_hash_table): Don't dump 'purecopy' flag. * src/print.c (print_object): Don't print 'purecopy' flag * src/json.c (json_parse_object): * src/lread.c (readevalloop, read_internal_start): * src/pgtkterm.c (syms_of_pgtkterm): * src/profiler.c (export_log): * src/xfaces.c (syms_of_xfaces): * src/xterm.c (syms_of_xterm): Adjust calls to 'make_hash_table'.
2024-12-12Pure storage removal: Replace calls to removed functionsPip Cet
* src/alloc.c (string_bytes, pin_string, valid_lisp_object_p) (process_mark_stack, survives_gc_p, syms_of_alloc): * src/androidterm.c (android_term_init): Replace call to 'build_pure_c_string'. * src/buffer.c (init_buffer_once, syms_of_buffer): * src/bytecode.c (exec_byte_code): * src/callint.c (syms_of_callint): * src/callproc.c (syms_of_callproc): * src/category.c (Fdefine_category): * src/coding.c (syms_of_coding): * src/comp.c (Fcomp__compile_ctxt_to_file0) (maybe_defer_native_compilation, syms_of_comp): * src/data.c (Fsetcar, Fsetcdr, Fdefalias, Faset, syms_of_data): * src/dbusbind.c (syms_of_dbusbind): * src/doc.c (Fsnarf_documentation): * src/emacs-module.c (syms_of_module): * src/eval.c (Finternal__define_uninitialized_variable) (Fdefconst_1, define_error, syms_of_eval): * src/fileio.c (syms_of_fileio): * src/fns.c (Ffillarray, Fclear_string, check_mutable_hash_table): * src/fontset.c (syms_of_fontset): * src/frame.c (make_initial_frame): * src/haikufns.c (syms_of_haikufns): * src/intervals.c (create_root_interval): * src/keyboard.c (syms_of_keyboard): * src/keymap.c (Fmake_sparse_keymap, Fset_keymap_parent) (store_in_keymap, syms_of_keymap): * src/lisp.h: * src/lread.c (Fload, read0, intern_c_string_1, define_symbol) (Fintern, defsubr, syms_of_lread): * src/pdumper.c (Fdump_emacs_portable): * src/pgtkfns.c (syms_of_pgtkfns): * src/pgtkterm.c (syms_of_pgtkterm): * src/process.c (syms_of_process): * src/search.c (syms_of_search): * src/sqlite.c (syms_of_sqlite): * src/syntax.c (syms_of_syntax): * src/treesit.c (syms_of_treesit): * src/w32fns.c (syms_of_w32fns): * src/xdisp.c (syms_of_xdisp): * src/xfaces.c (syms_of_xfaces): * src/xfns.c (syms_of_xfns): * src/xftfont.c (syms_of_xftfont): * src/xterm.c (syms_of_xterm): Remove calls to 'PURE_P', 'CHECK_IMPURE', 'Fpurecopy', and replace calls to 'build_pure_c_string', 'pure_list', 'pure_listn', etc., by impure equivalents.
2024-08-22Prefer static_assert to verifyStefan Kangas
Although static_assert is C11-specific, and Emacs remains on C99, it has been backported to older compilers by Gnulib. Gnulib has already changed to prefer static_assert, and we can do the same. * lib-src/asset-directory-tool.c (main_2): * src/alloc.c (BLOCK_ALIGN, aligned_alloc, lisp_align_malloc) (vectorlike_nbytes, allocate_pseudovector): * src/android.c (android_globalize_reference, android_set_dashes): * src/android.h: * src/androidfont.c (androidfont_draw, androidfont_text_extents): * src/androidvfs.c: * src/bidi.c (BIDI_CACHE_MAX_ELTS_PER_SLOT, bidi_find_bracket_pairs): * src/buffer.c (init_buffer_once): * src/casefiddle.c (do_casify_multibyte_string): * src/dispnew.c (scrolling_window, scrolling): * src/editfns.c (styled_format): * src/emacs-module.c (module_extract_big_integer): * src/fileio.c (Fdo_auto_save): * src/fns.c (next_almost_prime, hash_string): * src/fringe.c (init_fringe): * src/keyboard.h (kbd_buffer_store_event_hold): * src/keymap.c: * src/lisp.h (memclear, reduce_emacs_uint_to_hash_hash, modiff_incr): * src/lread.c (skip_lazy_string): * src/pdumper.c (dump_bignum, Fdump_emacs_portable) (dump_do_dump_relocation, pdumper_load): * src/process.c (make_process, Fmake_process, connect_network_socket): * src/regex-emacs.c: * src/sort.c (tim_sort): * src/sysdep.c (init_random, SSIZE_MAX): * src/thread.c: * src/timefns.c (trillion_factor): * src/unexelf.c: * src/xterm.c (x_send_scroll_bar_event): Prefer static_assert to Gnulib verify. Remove import of verify.h, except when used for other reasons.
2024-08-16Fix x_construct_mouse_click || vs | typoPaul Eggert
* src/xterm.c (x_construct_mouse_click): ‘||’ → ‘|’. Typo found by clang 18.1.6 -Wbool-operation.
2024-07-27Merge from origin/emacs-30Eli Zaretskii
88e1ec22f27 Update to Org 9.7.9 1ae2f004473 Fix edge-case with 'which-key-dont-use-unicode' setter 68a5f1f7d18 NS: prevent makeKeyWindow warnings (bug#69525) 59a895ec499 ; * .gitignore: Add lisp/eshell/esh-groups.el. 5c08cd4e7c3 ; * doc/emacs/cmdargs.texi (Initial Options): Fix last ch... 309d0a71864 Add PROBLEMS entry for bug#72303 87389f9ff90 ; Improve documentation of 'line-prefix' and 'wrap-prefix'. 268a2d10fc9 Improve documentation of '--init-directory' command-line ... c27055a938a ; cperl-mode.el: Fix fontification of flip-flop (Bug#72296) fcd4e4c895d ; * admin/MAINTAINERS: Add myself for maintaining some ar... fdc133e97f6 Fix bug in server.el introduced by 0d7d835902df af527051cd3 ; * admin/MAINTAINERS: Remove Nicolas Petton. 7170282a59a lisp/minibuffer.el (completion--sifn-requote): Fix bug#72176 68906f184cb * admin/notes/spelling: Update note. 9eea6be5abf Don't produce invalid XML with multi-line commenting style b97786d9f6e ; * etc/NEWS: Entry for 'gnus-summary-limit-to-age' (bug#... a7996615663 Standardize possessive apostrophe usage in manuals, docs,... 67faaead754 Don't refer to obsolete finder group "wp" # Conflicts: # etc/NEWS