aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Fix store_function_docstring for native subrs (Bug#74966)Pip Cet2025-01-083-3/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since native subrs can have either etc/DOC indexes or vector indexes, we use the sign bit of the 'doc' field to distinguish the two cases. * src/comp.c (native_function_doc, make_subr): Use one's complement of doc index for native subrs. * src/doc.c (store_function_docstring): Add assertion. * src/lisp.h (struct Lisp_Subr): Document 'doc' sign bit.
* | | ; Fix indentation in src/nsterm.hStefan Kangas2025-01-081-16/+16
| | | | | | | | | | | | Reduce the diff between master and scratch/igc.
* | | Move define_error declaration and docstringStefan Kangas2025-01-082-5/+4
| | | | | | | | | | | | | | | | | | * src/lisp.h (define_error): Move declaration to its proper place, make external, and move its docstring... * src/eval.c (define_error): ...to its function definition.
* | | ; Fix indentationStefan Kangas2025-01-081-2/+2
| | |
* | | Allow to remap 'header-line' faceEli Zaretskii2025-01-051-3/+19
| | | | | | | | | | | | | | | | | | | | | * src/xfaces.c (realize_basic_faces): Bind 'face-remapping-alist' to nil while realizing basic faces. (lookup_basic_face): Force realizing a face whose 'inherit' attribute is non-nil. (Bug#73862)
* | | Fix setup of coding-systems on MS-WindowsEli Zaretskii2025-01-052-1/+25
| | | | | | | | | | | | | | | | | | | | | | | | * src/emacs.c (main) [HAVE_PDUMPER] [WINDOWSNT]: Call 'w32_init_file_name_codepage' again after loading the pdumper file. * src/w32.c (w32_init_file_name_codepage) [HAVE_PDUMPER]: Reinitialize additional variables. (Bug#75207)
* | | Merge from origin/emacs-30Eli Zaretskii2025-01-041-2/+2
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6468c3f7a74 Update doc string of 'insert' 6d8c3c0cbe4 Use `keymap*-set' over `global-set-key'/`define-key' in e... 4b2bb63b7ac Fix documentation and prompt in 'package-isolate' 55f43f5b220 ; Fix typo in treesit-explore-mode 921f454f508 Update fontification for attribute values in heex-ts-mode ae2589ea7a5 Add expression handling to heex-ts-mode 0cacf806391 ; * etc/NEWS: Document change of 'make-cursor-line-fully-... f47a29da5c4 * lisp/man.el (Man-mode): Improve docstring. # Conflicts: # etc/NEWS
| * | Update doc string of 'insert'Ulrich Müller2025-01-041-2/+2
| | | | | | | | | | | | | | | * src/editfns.c (Finsert): Mention 'decode-coding-string' instead of the obsolete 'string-as-multibyte' in doc string. (Bug#75345)
| * | Update copyright year to 2025Stefan Kangas2025-01-02278-286/+297
| | | | | | | | | | | | Run "TZ=UTC0 admin/update-copyright".
* | | Automatically redraw frames for filtered facesDaniel Colascione2025-01-032-0/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Automatically redraw frames when we detect that a window parameter used in a face filter is changed. (Bug#75291) * src/window.c (Fset_window_parameter): redraw window, actually whole frame in this implementation, on face-relevant parameter change (syms_of_window): add window_auto_redraw_on_parameter_change * src/xfaces.c (evaluate_face_filter): record properties
* | | Update copyright year to 2025Paul Eggert2025-01-01279-287/+292
| | | | | | | | | | | | Run "TZ=UTC0 admin/update-copyright".
* | | ; * src/doc.c (store_function_docstring): Fix typo.Pip Cet2024-12-301-1/+1
| | |
* | | Make browser windows pop up when browsing URLs on WaylandDaniel Colascione2024-12-281-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a user invokes browse-url, the browser window viewing the URL should be raised in the user's desktop environment. On X11, running xdg-open as a subprocess does the job. However, on Wayland, this approach doesn't work: xdg-open makes the web browser browse a URL all right, but doesn't raise the browser window in the GUI. Therefore, if the browser window is behind Emacs, browse-url appears to do nothing. Repeated invocations of browse-url cause the browser to load multiple tabs in the background, surprising the user when he gives up in frustration and manually switches to the browser window. There's no subprocess we can run to make the right thing happen. Wayland requires that we pass along event activation information to the browser using the xdg_activation_v1 protocol. This change adds x-gtk-launch-uri to invoke GTK-native URL-dispatch machinery. This machinery DTRT on both X11 and Wayland. We fall back to the default browser machinery if we're not on a GTK frame. The logic is more complicated than it has to be because the GTK URI launch mechanism requires that we launch with respect to a specific GTK window, and in some environments (e.g., running emacs -nw in a PGTK Emacs) we don't have a GTK window. We also want to preserve the effect of customizing browse-url-browser-function, so adding an entry to browse-url-default-handlers that preempts URI open when we happen to be on a GTK frame is the wrong thing to do. * lisp/net/browse-url.el (browse-url--browser-defcustom-type): (browse-url--inhibit-pgtk): avoid infinite recursion (browse-url-default-browser): use pgtk launch (x-gtk-launch-uri): new function (browse-url-default-gtk-browser): ues it * src/pgtkfns.c (unwind_gerror_ptr): new function (Fx_gtk_launch_uri): new function (syms_of_pgtkfns): register it * etc/NEWS: mention the new feature
* | | Merge from origin/emacs-30Eli Zaretskii2024-12-281-0/+5
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2ba6387d1d6 ; Fix inaccuracy in ELisp Reference manual 8ac6a178804 ; * etc/PROBLEMS: Mention problems with XPM support in GD... 624322d5f6a Add missing fontification matches for elixir-ts-mode 5bafb11b400 ; Fix copyright year 186ea407326 Don't start docstrings with "This function" or similar cb8ce2e68bb Enable indent-tabs-mode in obj-c-mode 54f35137096 Fix comment indent in 'lua-ts-mode' and old grammar 8b95549e908 * admin/nt/dist-build/build-dep-zips.py: (deps src) handl... 8064b2a6798 Document undocumented completion commands c29b798537e ; etc/w32-feature.el (harfbuzz): improve test 0e43e35f96e * admin/nt/dist-build/emacs.nsi: (Uninstall) delete only ... b83cd8a8fb0 ; * etc/tutorials/TUTORIAL.ko: Fix the beginning. 41caccc488b ; * etc/publicsuffix.txt: Update from upstream. e6fb18406ee ; Fix refcards 14e791f9ba2 ; Update acknowledgments for Emacs 30 861b7864fc4 ; Fix node name in emacs-lisp-intro.texi 77243ba5be8 ; Update version tags of defcustoms fe2ac33bae8 ;* doc/misc/efaq.texi (New in Emacs 30): Mention 'trusted... 8fb884f0dc0 ; * etc/NEWS: Fix wording. e281355a5e8 Improve D-Bus and Tramp manual # Conflicts: # doc/emacs/emacs.texi # etc/NEWS # lisp/erc/erc-log.el # lisp/eshell/esh-mode.el # lisp/which-key.el
| * | Document undocumented completion commandsEli Zaretskii2024-12-241-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/minibuf.c (Fread_from_minibuffer): * lisp/minibuffer.el (minibuffer-complete-history) (minibuffer-complete-defaults): Doc fixes. * doc/emacs/mini.texi (Completion Commands): Fix markup, style of describing commands, and indexing. Document 'C-x UP' and 'C-x DOWN'.
* | | Make image cache aware of image-scaling-factor (bug#74725)Alan Third2024-12-282-11/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/dispextern.h (struct image): Add scale so it can be compared in search_image_cache. * src/image.c (search_image_cache): Calculate the scale factor and compare with the cached value. (image_compute_scale): Compute the image's scale factor and optionally store it in the image struct. (compute_image_size): Move scale calculation code into image_compute_scale and use it.
* | | Don’t include stdlib.h from conf_post.hPaul Eggert2024-12-264-56/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is brittle, as evinced by the recent problem with lib/stdlib.c. * src/conf_post.h: Move potential inclusion of stdlib.h and redefinitions of malloc, free, realloc, aligned_alloc, and calloc from here ... * src/lisp.h: ... to here. Do not redefine the symbols if UNEXMACOS_C is defined. * src/unexmacosx.c: Do not undef malloc, realloc, free. (UNEXMACOS_C): New symbol, to prevent lisp.h from defining them.
* | | Let Gnulib deal with MB_CUR_MAXPaul Eggert2024-12-261-10/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Recent Gnulib should work around the Android NDK 16 MB_CUR_MAX bug, so Emacs no longer needs to worry about it. * configure.ac (gl_STDLIB_H): Remove, to stop overriding Gnulib. * configure.ac (__ctype_get_mb_cur_max) (emacs_cv_broken_mb_cur_max, REPLACEMENT_MB_CUR_MAX): * src/conf_post.h (MB_CUR_MAX): Remove, as Gnulib does this now.
* | | Fix format specifier warnings in nsterm.mCharalampos Mitrodimas2024-12-261-6/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Resolve warnings caused by mismatched format specifiers in `NSLog` and `fprintf` calls. This was observed when compiled with Clang version 19.1.6 (arm64-apple-darwin). Warnings fixed: - "format specifies type 'unsigned int' but the argument has type 'IOReturn' (aka 'int')" * src/nsterm.m: Cast `IOReturn` (aka `int`) to `unsigned int` for `%x` format specifiers in `NSLog`. (Bug#74971)
* | | Merge from origin/emacs-30Eli Zaretskii2024-12-211-1/+1
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | 5e97079cc75 ; Fix call to 'decode_string_utf_8' in #ifdef'ed-away code 6902673b5b9 ; Improve commentary in calendar.el 08b62132dde Add 'lua-ts-mode' to 'interpreter-mode-alist' d8ffcf2fbac Document representation of dates in calendar.el faaa13ec762 Autoload 'shortdoc-help-fns-examples-function'
| * | ; Fix call to 'decode_string_utf_8' in #ifdef'ed-away codeEli Zaretskii2024-12-211-1/+1
| | | | | | | | | | | | | | | | | | * src/coding.c (Finternal_decode_string_utf_8): Fix calling sequence of 'decode_string_utf_8' to adapt to changes in the latter's signature.
* | | Merge from origin/emacs-30Eli Zaretskii2024-12-211-2/+3
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8f8da2d7854 ; * ChangeLog.4: Update. 49adcf30b01 ; * etc/AUTHORS: Update. 1381c6f9591 * Update authors.el 5c0f3f5826e ; * etc/NEWS: Mark unmarked entries. 8a0c9c234f1 Document 'trusted-content c6ce11b2a48 Mention network-interface-list in network-interface-info ... a7905145f70 ; * lisp/emacs-lisp/re-builder.el (reb-change-syntax): Fi... cde22c02011 Move NEWS items from unreleased 28.3 to released 29.1 5686bb5b428 Improve browse-url-android-share docstring 92041e15f4a Minor doc fix for url-handler-regexp 9fd96e2ab95 Improve reb-change-syntax docstring b9dc337ea74 * lisp/files.el (trusted-content-p): Make `:all` work in ... 4b685bc4fcd ; * src/process.c (Fnetwork_interface_list): Fix typo. c14c4895719 ; * lisp/net/nsm.el (nsm-trust-local-network): Fix typo. 10f976300d0 ; Add some tree-sitter thing content to the manual 55303a6bc0a * lisp/org/ox-texinfo.el (org-texinfo-template): Fix Info... 8b6c6cffd1f trusted-content: Adjust the last patch based on prelimina... 69b16e5c638 ; * etc/NEWS: Fix typos. 5c6dbc65f36 ; * doc/lispref/frames.texi (Multiple Terminals): Add ind... 856a58e2827 Update documentation of 'etags' regexps some more 4c68846223b Update documentation of 'etags' regexps b5158bd1914 elisp-mode.el: Disable Flymake byte-compile backend in un... # Conflicts: # doc/man/etags.1 # etc/NEWS # lisp/org/ox-texinfo.el
| * | Mention network-interface-list in network-interface-info docstringRobert Pluim2024-12-181-1/+2
| | | | | | | | | | | | | | | * src/process.c (Fnetwork_interface_info): Reference 'network-interface-list'.
| * | ; * src/process.c (Fnetwork_interface_list): Fix typo.Robert Pluim2024-12-161-1/+1
| | |
* | | Add support for the ':data' keyword for play-sound in MS-Windows.Cecilio Pardo2024-12-211-120/+122
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/sound.c (parse_sound) [WINDOWSNT]: Check that either :file or :data is present. (do_play_sound): Added parameter to select file or data, and code to play from data. (Fplay_sound_internal): Fixed volume format, and send file or data to 'do_play_sound'. (Bug#74863) * etc/NEWS: Add entry for this change. * etc/PROBLEMS: Remove entry about missing support for :data.
* | | Fix a number of Android compilation warningsPo Lu2024-12-211-2/+10
| | | | | | | | | | | | | | | | | | * src/dispnew.c (frame_rect_abs, frame_pos_abs, rect_intersect) (copy_child_glyphs, abs_cursor_pos, is_in_matrix) (is_cursor_obscured) [HAVE_ANDROID]: Delete functions.
* | | On GTK do not inhibit implied resizing until tool bar was drawn (Bug#74750)Martin Rudalics2024-12-202-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/frame.c (frame_inhibit_resize): Under GTK do not inhibit implied resizing as long as the tool bar has not been drawn yet so the frame gets its intended initial height (Bug#74750). * src/gtkutil.c (update_frame_tool_bar): Set tool_bar_resized slot of frame f to true regardless of whether a tool bar was made or not. This will make inhibiting implied resizes work again from now on.
* | | Fix the MS-Windows build broken by recent changesEli Zaretskii2024-12-202-23/+7
| | | | | | | | | | | | | | | | | | * src/w32font.c (memq_no_quit): * src/w32uniscribe.c (memq_no_quit): Remove; use the function from fns.c instead. All callers changed.
* | | Allow xt-mouse-tests to runGerd Möllmann2024-12-201-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | This is basically a workaround for running a test in batch mode which should have a tty frame available but doesn't. * src/frame.c (check_tty): Relax check if noninteractive. * lisp/xt-mouse.el (xterm-mouse-event): Don't use frame-at if noninteractive.
* | | Fix tty root frame collection in redisplay_internalGerd Möllmann2024-12-203-1/+11
| | | | | | | | | | | | | | | | | | | | | * src/fns.c (memq_no_quit): New function. * src/lisp.h: Declare it. * src/xdisp.c (redisplay_internal): Use memq_no_quit instead of assq_no_quit.
* | | Enable adjusting frame sizes on MS-DOSPo Lu2024-12-202-10/+15
| | | | | | | | | | | | | | | | | | | | | | | | * src/dispnew.c (change_frame_size): Do not propagate changes to child frames to root frames and vice versa. * src/frame.c (adjust_frame_size): Do not change video modes in resizing a child frame.
* | | Enable TTY child frames on MS-DOSPo Lu2024-12-207-100/+128
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/conf_post.h (ENOTSUP): Define to ENOSYS as msdos.h once did. (IFTODT): Copy definition from Gnulib. * src/dispnew.c (is_tty_frame): Also test FRAME_MSDOS_P. * src/frame.c (tty_child_pos_param, tty_child_size_param): Export functions. * src/msdos.c (mouse_get_xy, mouse_moveto, mouse_pressed): Offset mouse positions by those of the selected frame. (it_face_override): New function. (IT_set_face): New argument F. Load FACE_ID from its face cache. (IT_write_glyphs): Track the frames on which glyphs were generated and apply faces from their individual face caches. (IT_write_glyphs_with_face): New function. (tty_draw_row_with_mouse_face): Reimplement in line with tty.c and eliminate an obsolete optimization. (IT_clear_end_of_line, IT_clear_screen): Load faces from the cache of the provided frame. (IT_set_frame_parameters): Adjust frame geometry and garbage frames after geometry parameters change as a child frame. (BUILD_CHAR_GLYPH): Accept new parameter F. (IT_menu_display): Offset cursor positions by those of the selected frame. * src/msdos.h (ENOTSUP): Move to conf_post.h for Gnulib. * src/xdisp.c (redisplay_internal): Redisplay MSDOS frames unconditionally as with terminal frames.
* | | Fix the Android portPo Lu2024-12-202-0/+10
| | | | | | | | | | | | | | | | | | | | | * src/dispnew.c (terminal_cursor_magic) (combine_updates_for_frame): Disable unused code on Android. * src/frame.c (tty_child_frame_rect): Define out on Android.
* | | Fix network test failure when using VPN clientRobert Pluim2024-12-191-6/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When using certain VPN clients, the interface info returned by 'getifaddrs' does not have the address family filled in for the ifa_netmask component (this is allowed by the standard, since the value is not specified). The resulting address info causes network tests suite failures. Fix by copying the address family from the returned interface address. * src/process.c (network_interface_list): Copy the interface address sa_family to the netmask address. (Fnetwork_lookup_address_info): Fix test for non-IP addresses to properly account for IPv6. * test/src/process-tests.el (process-tests-check-bug-74907): New test, checks that 'network-interface-list' output is as expected. (Bug#74907)
* | | Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacsEli Zaretskii2024-12-191-1/+1
|\ \ \
| * | | ; Fix a call to update_window for !HAVE_EXT_MENU_BARGerd Möllmann2024-12-191-1/+1
| | | | | | | | | | | | | | | | * src/dispnew.c (update_menu_bar): Remove superfluous argument.
* | | | Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacsEli Zaretskii2024-12-194-8/+0
|\ \ \ \ | |/ / /
| * | | Remove remaining references to redisplay-dont-pauseGerd Möllmann2024-12-194-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | | | ; Fix compilation warnings in term.cEli Zaretskii2024-12-191-7/+7
|/ / / | | | | | | | | | | | | | | | | | | * src/term.c (Ftty_frame_geometry, Ftty_frame_edges) (Ftty_frame_list_z_order, Ftty_frame_restack) (Ftty_display_pixel_width, Ftty_display_pixel_height): Doc fixes. (Ftty_frame_restack): Make it "noreturn".
* | | Remove an unused parameter of combine_updatesGerd Möllmann2024-12-193-4/+4
| | | | | | | | | | | | | | | | | | * src/dispnew.c (combine_updates): Remove unused parameter inhibit_scrolling. * src/xdisp.c (redisplay_internal): Adjust caller. * src/dispextern.h: Change function prototype.
* | | Don't pause display for pending inputGerd Möllmann2024-12-195-496/+262
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/dispnew.c: Remove display_completed, redisplay_dont_pause, redisplay-dont-pause was declared obsolete in Emacs 24. Remove anything checking pending input, change function signatures accordingly, and so on. * src/keyboard.c (read_char): Don't use redisplay_dont_pause. * src/minibuf.c (read_minibuf): Use new function signatures. * src/xdisp.c: Don't check display_completed. Use new API. * lisp/subr.el (redisplay-dont-pause): Remove declaration.
* | | Merge branch 'scratch/tty-child-frames'Gerd Möllmann2024-12-1921-649/+1827
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for child frames on tty The redisplay part is complete. The frame-handling part supports use-cases like Posframe, Corfu, and child frames acting like tooltips. Other use-cases of child frames are not currently supported. In particular, trying to create minibuffer-only child frames on ttys will signal an error. * src/xfaces.c (free_frame_faces): Change formatting slightly. * src/xdisp.c (redisplay_trace, move_tracxe): Print to stderr because stdout screws up terminal display. (init_iterator): Remove a #ifdef HAVE_WINDOW_SYSTEM. (clear_garbaged_frames): Return a bool telling if we cleared matrix. (echo_area_display): Use combine_updates on tty frames. (redisplay_internal): Changes for redisplay of tty child windows. (deep_copy_glyph_row): Take a frame parameter. (display_tty_menu_item): Changes because of function signature changes. * src/w32term.c (w32_read_socket): Don't use FRAME_OBSCRURED_P, which has been removed. * src/w32inevt.c (do_mouse_event): Workaround for mouse events on child frafmes. * src/w32console.c (w32con_write_glyphs, w32con_update_end): Use glyphs' frame for faces. * src/treesit.c (treesit_load_language): Pacify a warning. * src/w32console.c (w32con_clear_end_of_line): Set glyph's frame. * src/terminal.c (cursor_to, raw_cursor_to): Handle case that frame is a child frame. * src/termhooks.h: Declare formerly static functions. * src/term.c (tty_hide_cursor, tty_show_cursor): Make externally visible. (tty_write_glyphs): Determine faces based on a glyph's frame. (tty_write_glyphs_with_face): Take a struct face argument instead of a face id. Callers changed. (tty_insert_glyphs): Use faces, not face ids. (append_glyph, append_composite_glyph, append_glyphless_glyph): Set glyph's frame. (turn_on_face, turn_off_face): Take face argument instead of face id. Callers adapted. (Fresume_tty): Act on root frame. (tty_draw_row_with_mouse_face): Handle child frames. (restore_desired_matrix): Make sure glyphs' is live. (set_tty_hooks): Set terminal's frame_raise_lower_hook. (tty_frame_geometry, Ftty_frame_geometry, Ftty_frame_edges) (Ftty_frame_list_z_order, Ftty_frame_restack) (tty_display_dimension, Ftty_display_pixel_width) (Ftty_display_pixel_height): New functions. (syms_of_term): Defsubr new Lisp functions. * src/minibuf.c (read_minibuf): Use combine_updates for tty frames. * src/frame.h (struct frame): Always define parent_frame. Change 'visible' to be a boolean. Always define 'undecorated' and 'no_accept_focus'. Add 'z_order'. (FRAME_OBSCURED_P): Removed. (FRAME_PARENT_FRAME): Make it a function. (SET_FRAME_VISIBLE): Take a bool parameter, not an int. (FRAME_INTERNAL_BORDER_WIDTH): Don't special-base HAVE_WINDOW_SYSTEM. * src/frame.c (decode_tty_frame): New function. (set_menu_bar_lines): Set menu bar lines and height to 0 for tty child frames. Compute min height differently. (adjust_frame_size): Set FrameCols/Rows only for root tty frames. Mark tty root frame garbaged if child frame is adjusted. Run some code even if not HAVE_WINDOW_SYSTEM. (make_frame): Run some code even if not HAVE_WINDOW_SYSTEM. (make_terminal_frame): Implement child frame creation. (tty_child_pos_param, tty_child_size_param) (tty_child_frame_rect): New functions. (Fmake_terminal_frame): Parts rewritten for child frames. (do_switch_frame): Add child frame support. (Fframe_ancestor_p): Define if not HAVE_WINDOW_SYSTEM. (Fmake_frame_visible, Fmake_frame_invisible) (Fframe_visible_p, Fraise_frame): Handle tty frames differently. (store_frame_param): Signal error if trying to re-parent a tty child frame. (Fframe_parameters): Report some additional tty frame parameters. (Fmodify_frame_parameters): Handle tty child frames. (Fset_frame_position): Ditto. (frame_parms): Define index for additional frame parameters. (handle_frame_param): New function. (gui_set_frame_parameters_1): Use handle_frame_param. * src/disptab.h (DISP_TABLE_EXTRA_SLOTS): Change to 12. (enum box): New enumeration. * src/dispnew.c (check_rows): New function, #if 0. (frame_matrix_frame): Variable removed. (line_hash_code): Take glyph's frame into account. (build_frame_matrix_from_leaf_window): Do not copy glyphs from rows that aren't enabled. (fill_up_glyph_row_with_spaces): Add frame parameter, uses changed. (fill_up_glyph_row_area_with_spaces): Add frame parameter. Set glyph's frame to it. (fill_up_frame_row_with_spaces): Ditto. (set_frame_matrix_frame): Function removed. (make_current): Change signature. Callers changed. (mirrored_line_dance): Take a frame argument, not a matrix. (redraw_frame): Don't clear_frame a child frame. (struct rect): New. (rect_intersect, frame_pos_abs, frame_rect_abs, root_frame) (max_child_z_order, is_frame_ancestor, frames_with_root) (frames_with_parent, frame_z_order_cmp, Fframe__z_order_lessp) (frames_in_reverse_z_order, tty_raise_lower_frame, is_tty_frame) (is_tty_child_frame, is_tty_root_frame, first_enabled_row) (make_matrix_current, prepare_desired_root_row) (make_glyph_space, neutralize_wide_char, produce_box_glyphs) (produce_box_sides, produce_box_line, copy_child_glyphs) (update_window_frame, update_initial_frame, flush_terminal) (abs_cursor_pos, is_in_matrix, is_cursor_obscured) (terminal_cursor_magic, combine_updates_for_frame) (combine_updates): New functions. (update_frame): Rewritten. (Fdisplay__update_for_mouse_movement): Take a MOUSE_FRAME param. (syms_of_display): New symbol frame--z-order--lessp, tty-non-selected-cursor. New subr Sframe__z_order_lessp. Provide tty-child-frames. * src/dispextern.h (struct glyph): Add member 'frame'. (CHAR_GLYPH_SPACE_P): Add FRAME parameter. All uses changed. (GLYPH_EQUAL_P): Compare glyphs' frame. (SET_CHAR_GLYPH): Add parameter FRAME. (SET_CHAR_GLYPH_FROM_GLYPH): Ditto. * src/chartab.c (Fmake_char_table): Allow more than 10 display table slots. * lisp/xt-mouse.el (xterm-mouse--handle-mouse-movement): Use new terminal parameter xterm-mouse-frame. (xterm-mouse-position-function): Ditto. (xterm-mouse-event): Determine frame under mouse and compute frame-relative coordinates. Set terminal parameter xterm-mouse-frame. * lisp/tty-tip.el: New file implementing tooltip for ttys. * lisp/paren.el (show-paren-function): Don't check if display-graphics-p when using child frames. * lisp/frame.el (frame-at): New function. (tty-frame-geometry, tty-frame-edges, tty-frame-restack) (tty-display-pixel-height, tty-frame-list-z-order) (tty-display-pixel-width): Declare C function. (frame-geometry): Use tty-frame-geometry. (frame-edges): Use tty-frame-edges. (frame-list-z-order): Use tty-frame-list-z-order. (frame-restack): Use tty-frame-restack. (display-pixel-height): Use tty-display-pixel-height. (display-pixel-width): Use tty-display-pixel-width. * lisp/disp-table.el (display-table): Increase size to 12. (box-horizontal, box-vertical, box-down-right, box-down-left) (box-up-right, box-up-left): New display table slot names for box-drawing characters. (display-table-slot, set-display-table-slot): Extend doc string. (describe-display-table): Display new display table slots. (standard-display-unicode-special-glyphs): New function setting up Unicode characters for display table entries. * .gitignore: Don't ignore patch files, they are useful to see in Magit status buffer when applying patches (git am).
| * | | Signal errors for unimplemented featuresGerd Möllmann2024-12-122-8/+2
| | | | | | | | | | | | | | | | | | | | * src/frame.c (make_terminal_frame): Error for minibuffer-only frames. * src/term.c (Ftty_frame_restack): Signal error.
| * | | Consider all windows for redisplay if frames have been clearedGerd Möllmann2024-11-201-5/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/xdisp.c (clear_garbaged_frames): Return true if any tty frame's current matrix has been cleared. (redisplay_internal): Consider all windows if clear_garbaged_frames returns true.
| * | | * src/xdisp.c (redisplay_internal): Use assq_no_quit.Gerd Möllmann2024-11-201-10/+3
| | | |
| * | | Revert "Don't pause display for pending input"Gerd Möllmann2024-11-165-262/+496
| | | | | | | | | | | | | | | | This reverts commit f62d70f52f4f6b7ed158d618bf790df21f171172.
| * | | Revert "Remove an unused parameter"Gerd Möllmann2024-11-163-4/+4
| | | | | | | | | | | | | | | | This reverts commit 627cbf05b53756883a789ff45727acf23f5066a4.
| * | | Remove an unused parameterGerd Möllmann2024-11-163-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | * src/dispnew.c (combine_updates): Remove unused parameter inhibit_scrolling. * src/xdisp.c (redisplay_internal): Adjust caller. * src/dispextern.h: Change function prototype.
| * | | Merge branch 'master' into scratch/tty-child-framesGerd Möllmann2024-11-1627-228/+1771
| |\ \ \
| * | | | Don't pause display for pending inputGerd Möllmann2024-11-165-496/+262
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/dispnew.c: Remove display_completed, redisplay_dont_pause, redisplay-dont-pause was declared obsolete in Emacs 24. Remove anything checking pending input, change function signatures accordingly, and so on. * src/keyboard.c (read_char): Don't use redisplay_dont_pause. * src/minibuf.c (read_minibuf): Use new function signatures. * src/xdisp.c: Don't check display_completed. Use new API. * lisp/subr.el (redisplay-dont-pause): Remove declaration.