1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-11 02:10:35 -08:00
Commit graph

50416 commits

Author SHA1 Message Date
Eli Zaretskii
412a6fad98 Avoid rare segfaults in 'combine_updates_for_frame'
* src/xdisp.c (redisplay_internal): Don't add to 'tty_root_frames'
frames that are not yet completely made.  (Bug#77046)
2025-03-16 13:35:18 +02:00
Po Lu
88e30e1ac5 ; * src/w32.c (term_ntproc): Fix capitalization of commentary. 2025-03-15 12:47:40 +08:00
Po Lu
1749ad825e ; Fix punctuation and typos in w32proc.c
* src/w32proc.c (WFO_MAX_WAIT, wait_objects_context)
(start_wait_objects, stop_wait_objects, end_wait_and_return)
(shrink_wait_pool, free_wait_pool, wait_for_objects)
(msg_wait_for_objects, delete_child, WINAPI, create_child)
(waitpid): Repunctuate sentences and correct typos.
2025-03-15 12:46:32 +08:00
Eli Zaretskii
c87f0e8a19 ; * src/w32.h (free_wait_pool): Move prototype from w32.c. 2025-03-14 15:05:29 +02:00
Yue Yi
e02466a579 Increase FD_SETSIZE on Windows to support more subprocesses
Earlier versions of Emacs were limited to at most 32 subprocesses or
network connections on Windows due to the 64-object limit imposed by
WaitForMultipleObjects.  To overcome this, a simple waiting thread
pool is implemented, allowing Emacs to efficiently wait on up to
2048 objects.

Each thread in the pool can wait on up to 63 objects, and a total of
32 threads are used, together with the main thread, to expand the
waiting capability.  This enables Emacs to support approximately 1024
subprocesses, which is comparable to the 'pty' method on GNU/Linux
when using the default FD_SETSIZE of 1024.

To minimize overhead, the threads remain active instead of being
frequently created and destroyed, reducing unnecessary system
resource consumption.  Idle threads can be terminated after a
period of inactivity to free up memory.

* src/w32.h (FD_SETSIZE): Change from 64 to 2048.
* src/w32.c (term_ntproc): Call 'free_wait_pool' to free waiting
threads.
* src/w32proc.c (WFO_ABANDONED, WFO_TIMEOUT, WFO_FAILED)
(WFO_MAX_WAIT): New macros.
(wait_objects_context, wait_objects_pool, wait_objects_info):
New structures for managing the thread pool.
(wait_objects_pool, wait_objects_info): New static variables for
managing the thread pool.
(wait_objects_thread, start_wait_objects, stop_wait_objects)
(end_wait_and_return, shrink_wait_pool, free_wait_pool):
New functions for waiting and managing the thread pool.
(wait_for_objects, msg_wait_for_objects): New functions as
replacements for WaitForMultipleObjects and
MsgWaitForMultipleObjects.
(wait_pid): Use 'wait_for_objects' and new macros.
(sys_select): Make some variables static to avoid stack
allocation.  Use 'wait_for_objects', 'msg_wait_for_objects', and
the new macros.
2025-03-14 14:58:42 +02:00
Eli Zaretskii
89441e12e2 Fix aborts and text corruption in 'replace-buffer-contents'
* src/insdel.c (replace_range): Fix a thinko.  Fix commentary.
(Bug#76997)
2025-03-13 22:19:14 +02:00
Sean Whitton
2aef2951c0 ; Replace "Elisp" with "Lisp" or "Emacs Lisp" in some places
* configure.ac (libgccjit_not_found_err)
(libgccjit_dev_not_found_err):
* doc/lispref/elisp.texi (Top):
* doc/lispref/functions.texi (What Is a Function):
* doc/lispref/parsing.texi (Parsing Program Source)
(Tree-sitter C API):
* doc/misc/gnus.texi (The Gnus Registry):
* etc/TODO:
* lisp/auth-source.el (auth-source-search):
* lisp/cedet/semantic/bovine/el.el (emacs-lisp-mode):
* lisp/editorconfig.el
(editorconfig-get-local-variables-functions):
* lisp/emacs-lisp/cconv.el (cconv-make-interpreted-closure):
* lisp/emacs-lisp/oclosure.el (cconv--interactive-helper):
* lisp/net/tramp-message.el (tramp-debug-font-lock-keywords):
* src/frame.c (do_switch_frame):
* test/lisp/emacs-lisp/shortdoc-tests.el
(shortdoc-help-fns-examples-function-test): Say "Lisp"
not "Elisp".
* lisp/progmodes/peg.el (peg-translate-exp): Say "Emacs Lisp"
not "Elisp".
2025-03-12 10:24:22 +08:00
Sean Whitton
99852fb867 Merge from origin/emacs-30
894b0e3a2f ; Adapt comment in tramp.el
cc87717fa0 Add keyword placeholder to tramp.el
7d0d61d854 Rewrite ERT manual introduction
b2f124f2a8 ; cperl-mode.el: Don't misinterpret exec_fcn as keyword exec
59d1aac49d Document return values of the various read-* functions
2025-03-12 10:09:09 +08:00
Sean Whitton
60c0524ad2 Fix capitalization ELisp -> Elisp
* configure.ac (libgccjit_not_found_err)
(libgccjit_dev_not_found_err):
* doc/emacs/buffers.texi (List Buffers):
* doc/lispref/elisp.texi (Tree-sitter C API):
* doc/lispref/functions.texi (What Is a Function):
* doc/lispref/parsing.texi (Parsing Program Source)
(Tree-sitter C API):
* doc/misc/gnus.texi (The Gnus Registry):
* etc/DEBUG:
* etc/NEWS:
* etc/NEWS.25:
* etc/NEWS.26:
* etc/NEWS.28:
* etc/NEWS.30:
* etc/TODO:
* lib-src/emacsclient.c (print_help_and_exit):
* lisp/auth-source.el (auth-source-search):
* lisp/cedet/semantic/bovine/el.el (emacs-lisp-mode):
* lisp/cedet/semantic/wisent/comp.el
(wisent-automaton-lisp-form):
* lisp/cedet/srecode/el.el (srecode-semantic-apply-tag-to-dict):
* lisp/editorconfig.el
(editorconfig-get-local-variables-functions):
* lisp/emacs-lisp/bindat.el (bindat-type):
* lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand):
* lisp/emacs-lisp/cconv.el (cconv-make-interpreted-closure):
* lisp/emacs-lisp/cl-macs.el (cl--labels-convert):
* lisp/emacs-lisp/lisp-mode.el (lisp-fdefs)
(lisp-fill-paragraphs-as-doc-string):
* lisp/emacs-lisp/macroexp.el (macroexp--fgrep):
* lisp/emacs-lisp/oclosure.el (cconv--interactive-helper):
* lisp/emacs-lisp/re-builder.el:
* lisp/erc/erc-button.el (erc-emacswiki-lisp-url):
* lisp/help-fns.el
(help-fns--describe-function-or-command-prompt):
* lisp/menu-bar.el (menu-bar-search-documentation-menu):
* lisp/net/tramp-message.el (tramp-debug-font-lock-keywords):
* lisp/org/org-capture.el (org-capture):
* lisp/org/org.el (org-category, org-todo):
* lisp/org/ox.el (org-export-async-start):
* lisp/progmodes/elisp-mode.el (emacs-lisp-mode):
* lisp/progmodes/peg.el (peg-translate-exp):
* lisp/progmodes/ruby-ts-mode.el:
* lisp/woman.el (woman-mode, woman-parse-numeric-arg):
* src/chartab.c (map_char_table_for_charset):
* src/fns.c (extract_data_from_object):
* src/frame.c (do_switch_frame):
* src/keyboard.c (make_lispy_event):
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-&key-arguments):
* test/lisp/emacs-lisp/shortdoc-tests.el
(shortdoc-help-fns-examples-function-test):
* test/manual/etags/c-src/emacs/src/keyboard.c
(make_lispy_event): Fix capitalization ELisp -> Elisp.
2025-03-12 09:38:33 +08:00
Stefan Monnier
40d8650d51 (Freplace_buffer_contents): Preserve markers more carefully
Use `replace_range` rather than `delete+insert`.

* src/insdel.c (replace_range): Allow NEW to specify a chunk
of buffer text.
* src/editfns.c (Freplace_buffer_contents): Use it.
* test/src/editfns-tests.el (replace-buffer-contents-1): Remove
incorrect check which happened to succeed because point was not
preserved carefully enough.  Make the replacement text share a bit
more content to make the test a bit more strict.
(editfns-tests--replace-region): Doesn't fail any more.
2025-03-11 17:16:21 -04:00
Yuan Fu
03a6d4256f
Remove parent-node field from tree-sitter parsers
* src/treesit.c (make_treesit_parser): Remove field.
(Ftreesit_parser_parent_node):
(Ftreesit_parser_set_parent_node): Remove
* src/treesit.h (Lisp_TS_Parser): Remove field.
2025-03-11 01:06:39 -07:00
Po Lu
f6a56ddb5d ; * src/android.c (android_rewrite_spawn_argv): Fix typo. 2025-03-11 10:14:30 +08:00
Martin Rudalics
cbad6215cf Fix handling of frame position values
* src/frame.c (tty_child_pos_param): Handle additional position
values.  New SIZE argument.
(tty_child_frame_rect): Process size before position.
(Fmake_terminal_frame): Do not store calculated size/position
values in parameters to avoid that a negative absolute position
is later interpreted as position relative to bottom/right edge
of parent.
(Fmodify_frame_parameters): For tty child frames process size
before position values so the latter can take a new size into
account.
* src/frame.h: Adjust declaration of tty_child_pos_param.
* src/gtkutil.c (xg_set_geometry): Handle negative frame
position specifications.
* src/msdos.c (IT_set_frame_parameters): For tty child frames
process size before position parameters.
* src/xfns.c (x_window): In the non-GTK toolkit variant leave
negative position values unchanged - the toolkit should know how
to handle them.  Process child frame position parameters
separately.  In the non-toolkit variant process child frame
parameters separately.
2025-03-10 09:33:17 +01:00
Po Lu
94ba1b097e Reenable mmap-based dump allocation on wide int configurations
* src/pdumper.c (VM_SUPPORTED): Don't define to 0 when
!USE_LSB_TAG if WIDE_EMACS_INT.
2025-03-10 12:44:26 +08:00
Po Lu
ab5bfcebdd Fix bug#76805
* 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-10 12:41:12 +08:00
Po Lu
5176eeb300 ; Correct typos in commentary and error messages
* src/lisp.h (USE_LSB_TAG):

* src/pdumper.c (pdumper_load): Correct typos in commentary and
error messages.
2025-03-10 09:43:13 +08:00
Mauro Aranda
0861da138b Provide better completion for customizing frame parameters
* lisp/frame.el (frame--special-parameters): New const.
(frame--complete-parameter-value): New function.
(initial-frame-alist, minibuffer-frame-alist): Use them in
:type.  (Bug#39143)
* lisp/cus-start.el (default-frame-alist): Use them here as well.
* src/frame.c (frame_parms): Add comment to try to keep
frame--special-parameters updated.
2025-03-09 19:07:40 -03:00
Po Lu
a5f8ce9f1e Re-port to 32-bit systems without alignment primitives
* configure.ac (ALIGNOF_INT, ALIGNOF_LONG, ALIGNOF_LONG_LONG):
New variables.
(emacs_cv_alignas_unavailable): Define if alignas and structure
alignment primitives are unavailable.  In such an environment,
the MSB tagging scheme must be enabled, as must the GNU malloc.

* msdos/sed2v2.inp: Adjust correspondingly.

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

* src/emacs.c (main):

* src/eval.c (Fautoload_do_load):

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

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

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

Tested on i386-unknown-solaris2.10, sparc-sun-solaris2.10.
2025-03-09 23:07:33 +08:00
Eli Zaretskii
59d1aac49d Document return values of the various read-* functions
* lisp/textmodes/string-edit.el (read-string-from-buffer):
* lisp/simple.el (read-from-kill-ring, read-shell-command)
(read-signal-name):
* lisp/replace.el (read-regexp-case-fold-search):
* lisp/auth-source.el (read-passwd):
* lisp/subr.el (read-key, read-number):
* lisp/minibuffer.el (read-file-name, read-no-blanks-input):
* lisp/international/mule-cmds.el (read-multilingual-string):
* lisp/language/japan-util.el (read-hiragana-string):
* lisp/files-x.el (read-file-local-variable)
(read-file-local-variable-mode, read-file-local-variable-value):
* lisp/faces.el (read-face-font, read-face-name):
* lisp/simple.el (read-extended-command):
* lisp/env.el (read-envvar-name):
* lisp/files.el (read-directory-name):
* lisp/faces.el (read-color):
* lisp/international/mule-diag.el (read-charset):
* lisp/emacs-lisp/map-ynp.el (read-answer):
* src/coding.c (Fread_coding_system)
(Fread_non_nil_coding_system):
* src/minibuf.c (Fread_command, Fread_from_minibuffer):
* src/lread.c (Fread_char, Fread_char_exclusive, Fread_event): Doc
fixes.
2025-03-09 15:02:39 +02:00
Eli Zaretskii
bcfa9692f0 Merge from origin/emacs-30
af8017b23f Explicitly document read-string return value
cf03c2b609 Improve docstrings of python.el import management
01bcc6961a ; Improve doc strings of Speedbar
bd9c76ab17 Avoid warnings about 'image-scaling-factor' in builds --w...
2025-03-09 07:33:13 -04:00
Gerd Möllmann
6fb68f4310 Fix drawing to the bottom-right corner of terminals
* src/term.c (tty_write_glyphs_1): Renamed from tty_write_glyphs. Don't
check if writing the bottom-right corner.
(tty_write_glyphs): New function handling case of writing to the
bottom-right corner, and otherwise calling tty_write_glyphs_1.
2025-03-09 12:21:00 +01:00
Gerd Möllmann
ba20f73d8e macOS: Don't constrainFrameRect for child frames
* src/nsterm.m ([EmacsWindow constrainFrameRect:toScreen:]): Don't do
anything for child frames.
2025-03-09 11:49:27 +01:00
Po Lu
1e289586fc Avoid reserved names in sfnt.c
* src/sfnt.c (_MIN, _MAX): Rename to INS_MIN and INS_MAX.
(sfnt_interpret_run): Adjust accordingly.
2025-03-09 13:20:02 +08:00
Po Lu
b36abc76ae ; Enable pdumper on some buggy versions of Sun C
* src/pdumper.c (dump_sort_copied_objects, drain_reloc_list)
(dump_do_fixups, dump_do_dump_relocation): Do not expand
Fnreverse multiple times in CALLN.  Sun C 5.12 evaluates the
arguments to array initializers to which it expands, which
clobbers the lists being reversed.
2025-03-08 21:58:19 +08:00
Po Lu
b0b7ad24e6 Don't lose drag-and-drop data intended for XTerm-like programs
* src/xselect.c (x_own_selection): If special values exist for
drag-and-drop to unsupported programs, retain them till the
selection is cleared.
2025-03-08 20:42:49 +08:00
Eli Zaretskii
b1a9a4a48e Fix crash in daemon when "C-x C-c" while a client frame shows tooltip
* src/frame.c (delete_frame): Ignore tooltip frames when looking
for other frames on the same terminal.  (Bug#76842)

(cherry picked from commit d2445c8c23)
2025-03-08 11:35:02 +02:00
Eli Zaretskii
d2445c8c23 Fix crash in daemon when "C-x C-c" while a client frame shows tooltip
* src/frame.c (delete_frame): Ignore tooltip frames when looking
for other frames on the same terminal.  (Bug#76842)
2025-03-08 11:31:22 +02:00
Gerd Möllmann
9277b03793 Fix tty underline capability check (bug#75024)
* src/dispextern.h (TTY_CAP_UNDERLINE_STYLED): Fix. Also make this an
enum.
2025-03-07 21:30:11 +01:00
Stefan Kangas
af8017b23f Explicitly document read-string return value
* src/minibuf.c (Fread_string): Document return value explicitly.
Better document PROMPT argument, and reflow docstring.  (Bug#76797)
2025-03-07 18:13:52 +01:00
Stefan Monnier
06af71fbde * src/eval.c (signal_or_quit): Reduce scope of debugger_called 2025-03-06 23:18:31 -05:00
shipmints
efd483cf0e mouse-face properties on tab-bar tab captions (bug#76394)
* etc/NEWS: Announce 'tab-bar' 'mouse-face' support.

* src/xdisp.c (note_tab_bar_highlight): Handle mouse-face property.

* lisp/tab-bar.el
(tab-bar-tab-highlight): New face.
(tab-bar-tab-name-format-mouse-face): New function adds the 'mouse-face'
'tab-bar-tab-highlight' to the tab name.
(tab-bar-tab-name-format-functions): Add
'tab-bar-tab-name-format-mouse-face'.
2025-03-06 20:37:44 +02:00
Stefan Monnier
1133c081d6 (replace_range): Delete argument markers
* src/lisp.h (replace_range):
* src/insdel.c (replace_range): Delete argument `markers`, always true.
* src/editfns.c (Ftranslate_region_internal):
* src/cmds.c (internal_self_insert):
* src/search.c (Freplace_match): Adjust callers accordingly.
2025-03-06 11:21:42 -05:00
Eli Zaretskii
cd051ef78e Fix images on the mode line under 'mode-line-compact'
* src/xdisp.c (display_mode_line): When 'mode-line-compact'
is in effect, don't remove spaces that have a 'display'
property on them.  (Bug#76761)
2025-03-06 16:27:00 +02:00
Kazuhiro Ito
64b3ad5c76 Avoid defining unneeded variables on Cygw32
lisp/term/w32-win.el contained definitions of variables which
were not used on Cygw32.  It is now to split into two files,
common part and Windows native build specific part. The latter
is a new file, lisp/term/w32-nt.el.
* src/image.c (Qlibpng_version, Qlibgif_version)
(Qlibjpeg_version): Don't define on Cygw32 build.
* src/treesit.c (Qtree_sitter__library_abi): Ditto.

* lisp/term/w32-win.el (dynamic-library-alist, libpng-version)
(libgif-version, libjpeg-version, libgnutls-version)
(tree-sitter--library-abi, gui-backend-set-selection)
(gui-backend-get-selection, gui-backend-selection-owner-p)
(gui-selection-exists-p): Moved to lisp/term/w32-nt.el.
* lisp/term/w32-nt.el: New file, separated Windows native build
specific part from lisp/term/w32-win.el.
* lisp/loadup.el: Load term/w32-nt.el on Windows native build.
(Bug#75926)
2025-03-06 16:04:51 +02:00
Po Lu
2250dafff9 Merge from savannah/emacs-30
9065423e70 ; Improve documentation of 2 symbol-related functions
2025-03-06 21:55:41 +08:00
Eli Zaretskii
9065423e70 ; Improve documentation of 2 symbol-related functions
* src/data.c (Fremove_pos_from_symbol, Fbare_symbol): Doc fixes.
(Bug#75290)
2025-03-06 12:52:05 +02:00
Eli Zaretskii
bf027eb6ff Fix redisplay of tab bar when its text properties change
* src/xdisp.c (update_tab_bar): Use 'equal-including-properties'
to compare previous with the current tab-bar items.  (Bug#76760)
2025-03-06 10:51:45 +02:00
Po Lu
3d7cc22d25 Permit executing programs with >1024 args on Android
* src/android.c (MAXARGS): Delete enumerator.
(android_rewrite_spawn_argv): Don't mandate a maximum number of
arguments.
2025-03-05 15:00:14 +08:00
Po Lu
336cc32f2a ; * src/nsterm.m (syms_of_nsterm): Fix typo in comment. 2025-03-05 15:00:14 +08:00
Philipp Stephani
e978737f57 Make Emacs buildable with -std=c11.
With -std=c11, GCC doesn't recognize 'asm' as a keyword, see
https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html and
https://gcc.gnu.org/onlinedocs/gcc/Alternate-Keywords.html.  Use __asm__
instead.

* src/lisp.h (flush_stack_call_func): Use __asm__ instead of asm.
2025-03-04 20:52:16 +01:00
Daniel Colascione
3a8ce5ac9c Add ns-click-through option to control activation click handling
* src/nsterm.m (acceptsFirstMouse):
Use ns_click_through variable instead of always returning YES.
(syms_of_nsterm): Define ns-click-through variable.

* lisp/cus-start.el: Add customization definition for ns-click-through.

* etc/NEWS: Document the new option.
2025-03-04 08:14:59 -08:00
Eli Zaretskii
a382bfdfa4 Fix 'etc/DOC' for a few functions/variables
* src/term.c (Ftty_frame_at):
* src/menu.c (syms_of_menu) <x-popup-menu-function>:
* src/dispnew.c (Fredisplay): Fix "doc:".  The extra blank was
preventing 'make-docfile' from recognizing the functions and
variables and extracting their documentation to 'etc/DOC'.
(Bug#76722)
2025-03-04 15:45:33 +02:00
Po Lu
25e2656dd9 ; * src/nsterm.m (ns_draw_stretch_glyph_string): One more spelling fix. 2025-03-04 21:10:36 +08:00
Po Lu
cd0a8c00a7 ; Fix style and language in src/nsterm.m
* src/nsterm.m (ns_maybe_dumpglyphs_background)
(ns_draw_stretch_glyph_string): Fix coding style.  Use American
English spelling.
2025-03-04 21:09:47 +08:00
Ben Simms
9cbbdcee13 Support colored stipples on Cocoa NS (Bug#73384)
On Cocoa builds of NS Emacs, stipples are now rendered
using masked CGImages instead of patterned NSColors so that
stipples now render with color.
* src/nsimage.m ([EmacsImage stippleMask:]): Use a CGImageMask to
store the stipple mask when building for Cocoa.
* src/nsterm.m (ns_maybe_dumpglyphs_background): Perform a masked
fill to draw stipples when building for Cocoa.
(ns_draw_stretch_glyph_string): Perform a masked fill to draw
stipples when building for Cocoa.
2025-03-04 14:31:35 +02:00
Paul Eggert
9415941a9c Revert “Avoid some union buffered_input_event uses”
Revert my commit 29a9fd4f4b
and the following commit 1ec0889e7b.
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-03 22:28:59 -08:00
Philipp Stephani
3e39b2418b ; * src/eval.c (Fdefvar_1, Fdefconst_1): Properly quote apostrophe. 2025-03-04 06:13:22 +01:00
Po Lu
144b268a84 Render Android hourglass cursor mechanics more consistent with X
* src/androidterm.c (android_show_hourglass): Always define the
hourglass cursor, but...
(android_hide_hourglass): ... restore the invisible cursor
subsequently, if need be.
(android_toggle_visible_pointer): Do not hide the current cursor
if it is an hourglass.
2025-03-04 09:47:30 +08:00
Eli Zaretskii
c116dad608 Avoid crashes on MS-Windows on repeated client connections
* src/w32uniscribe.c (uniscribe_close): Zero out dwrite cache.
Suggested by Richard Copley <rcopley@gmail.com>.  (Bug#76121)
2025-03-03 21:29:45 +02:00
Eli Zaretskii
1ec0889e7b Fix MS-Windows build broken by buffered_input_event changes
* src/keyboard.c (kbd_buffer_store_selection_event_hold):
* src/keyboard.h (kbd_buffer_store_selection_event_hold): Declare
and define only for (HAVE_X11 || HAVE_PGTK).
2025-03-03 21:08:35 +02:00