1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-05 23:21:22 -08:00
Commit graph

49695 commits

Author SHA1 Message Date
Po Lu
679f7ccc49 Prevent accesses to /content files without a GUI connection
* src/androidvfs.c (android_content_name): Hide all
subdirectories when `android_init_gui' is not set.
2024-08-07 09:17:57 +08:00
Eli Zaretskii
f1e37ae423 Avoid crashes in very large buffers with long lines
* src/xdisp.c (get_large_narrowing_begv, get_large_narrowing_zv)
(get_medium_narrowing_begv, get_medium_narrowing_zv): Use
'ptrdiff_t' instead of 'int', to prevent integer overflow in
large buffers.  (Bug#72497)
2024-08-06 21:19:49 +03:00
Eli Zaretskii
729b17c202 ; * src/lread.c (Fload): Add comment. (Bug#72433) 2024-08-04 11:58:00 +03:00
Mattias Engdegård
e50d597f45 Fix missing type checks before specbind
This fixes bugs that crashed Emacs when the Lisp interpreter was fed
bad code.

* src/eval.c (FletX, Flet, internal_lisp_condition_case)
(funcall_lambda): Hoist symbol-with-pos elimination and type checks to a
dominating position for efficiency.  This also plugs at least two typing
holes. (Mea culpa.)
* test/src/eval-tests.el (eval-bad-specbind): New regression test.
2024-08-03 19:32:23 +02:00
Po Lu
8d073823c6 Revert "Remove redundant byte-swapping boundary"
This reverts commit daefd6771a.

* src/sfnt.c (sfnt_read_OS_2_table): Restore realignment after
s_family_class, as it occupies byte 32, not 34.  Reported by Pip
Cet <pipcet@protonmail.com>.
2024-08-03 17:34:32 +08:00
Po Lu
c25687e860 Fix various typos reported by Pip Cet
* src/ftfont.c (get_adstyle_property):

* src/sfntfont.c (sfntfont_list_1): Correct typos.  Reported by
Pip Cet <pipcet@protonmail.com>.
2024-08-03 17:09:49 +08:00
Gerd Möllmann
e539a5c7d7 NS: Fix placement of candidate window (bug#72422)
* src/nsterm.m ([EmacsView firstRectForCharacterRange:actualRange:]):
Call method of NSTextInput.
2024-08-03 10:29:24 +02:00
Eli Zaretskii
ef5466c267 Avoid aborts when buffer is modified during its redisplay
* src/xdisp.c (redisplay_window): Restore point from saved byte
position only if the buffer was not changed meanwhile.
(Bug#72165)
2024-08-01 14:01:17 +03:00
Gerd Möllmann
ceb5a15222 MacOS: Let EmacsView implement NSTextInputClient
* src/nsterm.h (@interface EmacsView): Implement NSTextInputClient protocol.
* src/nsterm.m: Implement required NSTextInputClient methods, forwarding
to existing NSTextInput methods.
2024-07-31 05:19:46 +02:00
Gerd Möllmann
9f7c1ace9f NS: Set frame position when entering/exiting fullscreen (bug#71912)
* src/nsterm.h ([EmacsView adjustEmacsRectRect]): Declare.
* src/nsterm.m ([EmacsView windowDidEnterFullScreen]): New method.
([EmacsView windowDidEnterFullScreen]): Call it.
([EmacsView windowDidExitFullScreen]): Call it.
2024-07-30 06:02:15 +02:00
Po Lu
5cf64d8377 Fix sporadic crashes and `select' failures in dumped images
* src/process.c (init_process_emacs) [HAVE_UNEXEC]: Clear
dumped values of child_signal_read_fd and child_signal_write_fd.
2024-07-29 10:37:16 +08:00
Gerd Möllmann
68a5f1f7d1 NS: prevent makeKeyWindow warnings (bug#69525)
* src/nsterm.m (ns_raise_frame): Don't makeKeyWindow if frame has
no_accept_focus set.
2024-07-26 20:59:25 +02:00
Stefan Kangas
a799661566 Standardize possessive apostrophe usage in manuals, docs, and comments
See the note in admin/notes/documentation.
Ref: https://lists.gnu.org/r/emacs-devel/2012-02/msg00649.html
2024-07-25 03:35:18 +02:00
Po Lu
23549d7175 * src/image.c (gui_put_x_image): Avoid memory leak. 2024-07-24 20:13:01 +08:00
Po Lu
3a76354e09 Adapt last change to non-NS systems
* src/image.c (xpm_load_image): Also check whether mask_img is
NULL.
2024-07-24 11:59:53 +08:00
Po Lu
b5543c54bf Fix NULL pointer dereferences in xpm_load_image
* src/image.c (x_destroy_x_image): Correct test condition.
(xpm_load_image): Do not release image data if it is still to be
created.
2024-07-24 11:57:28 +08:00
Po Lu
1ee8579eb7 Fix bug#72255
* src/image.c (struct image_type): Minor grammatical
corrections.
(image_destroy_x_image): [HAVE_NS]: Do not release
Emacs_Pix_Containers, which are identical to Emacs_Pixmaps and
consequently always released with the `struct image'.
(bug#72255)
2024-07-24 11:39:07 +08:00
Eli Zaretskii
7588e1f8a9 ; * src/xdisp.c (Fformat_mode_line): Doc fix. 2024-07-23 14:07:30 +03:00
Gerd Möllmann
2074e94c3b Fix disappearing bar cursor on Hebrew text (bug#72230)
* src/nsterm.m (ns_draw_window_cursor): Compute the correct bar cursor
rectangle for R2L before setting the clipping.
2024-07-23 08:15:09 +02:00
Yuan Fu
87f41b937b
Fix Ftreesit_parser_create
* src/treesit.c (Ftreesit_parser_create): Use the buffer given by the
caller rather than the current buffer.
2024-07-21 17:21:58 -07:00
Yuan Fu
ed38fcc017
Fix segfault when deleting tree-sitter query (bug#72238)
* src/treesit.c (treesit_delete_query): Only delete query and cursor
when they are non-NULL.
2024-07-21 17:14:08 -07:00
Stefan Kangas
c66bda1a19 Improve treesit-node-child-by-field-name docstring
* src/treesit.c (Ftreesit_node_child_by_field_name): Improve docstring.
2024-07-21 22:21:11 +02:00
Stefan Kangas
68615a3866 Fix punctuation and doc style in treesit.c
* src/treesit.c (Ftreesit_parser_included_ranges)
(Ftreesit_query_capture, treesit_traverse_sibling_helper)
(treesit_traverse_match_predicate): Fix punctiation and documentation
style in comments and docstrings.
2024-07-21 17:47:41 +02:00
Eli Zaretskii
07b1a36f78 ; * src/sqlite.c (Fsqlite_load_extension): Add "vec0" to allowed extensions. 2024-07-20 10:27:52 +03:00
Stefan Kangas
a6cab228d4 ; Fix typos 2024-07-18 11:46:50 +02:00
Stefan Kangas
c9d28a05d9 Avoid overflow in pgtk_is_numeric_char
* src/pgtkfns.c (parse_resource_key): Avoid overflow by making array
larger, if a key is RESOURCE_KEY_MAX_LEN long.  Do not merge to master,
since it's fixed in a different way there.
2024-07-18 09:42:07 +02:00
Po Lu
4c35382e98 ; * src/emacs.c (syms_of_emacs) <Vsystem_type>: Fix doc string indentation. 2024-07-18 13:35:47 +08:00
Po Lu
c56e837a10 ; * src/android.c (setEmacsParams): Delete unused variable. 2024-07-14 12:51:48 +08:00
Po Lu
b00fc31dd1 Do not set LD_LIBRARY_PATH during Android initialization
* doc/emacs/android.texi (Android Environment): Adjust
documentation to match.

* java/org/gnu/emacs/EmacsNoninteractive.java (main1): New
function.  Remove initialization of EmacsNative hither.
(main): Acquire an ApplicationInfo or LoadedApk, as the case may
be on the host system, derive a ClassLoader from the result, and
load and call `main1' from within this class loader.

* src/android-emacs.c (main):

* src/android.c (setEmacsParams): Do not override
LD_LIBRARY_PATH or set EMACS_LD_LIBRARY_PATH.  This enables
Emacs to execute subprocesses in certain "fortified" Android
systems, amongst other things.
2024-07-14 12:46:23 +08:00
Raffael Stocker
a6c78ccf5f ; * src/w32fns.c (Fw32_notification_close): Fix typo (bug#72091). 2024-07-13 15:19:46 +03:00
Eli Zaretskii
bc154cba13 ; * src/search.c (Fre_search_forward): Clarify doc string (bug#71879). 2024-07-13 13:22:01 +03:00
Eli Zaretskii
ce13eee5ab ; * src/image.c (free_image_cache): Add assertion. (Bug#71929) 2024-07-12 09:39:39 +03:00
Po Lu
b22ab99f0a Render more Android functions safe to execute in a batch session
* src/androidfns.c (Fx_display_mm_width, Fx_display_mm_height)
(Fandroid_display_monitor_attributes_list)
(Fandroid_external_storage_available_p)
(Fandroid_request_storage_access): Verify that a display
connection or service object is available.

* src/androidselect.c (Fandroid_get_clipboard)
(Fandroid_browse_url_internal, Fandroid_get_clipboard_targets)
(Fandroid_get_clipboard_data, Fandroid_notifications_notify):
Moderate tone of error messages.
2024-07-12 14:31:33 +08:00
Po Lu
8350ebd22e Fix bug#71929
* src/image.c (free_image_cache): Unconditionally release image
cache, as this function is only called with its existence
already established.

* src/xfaces.c (free_frame_faces): Clear FRAME_IMAGE_CACHE (f).
(bug#71929)
2024-07-09 22:02:22 +08:00
Po Lu
671ad83026 Fix bug#70697 with respect to fringe bitmaps
* src/pgtkterm.c (pgtk_draw_fringe_bitmap): Always call
`fill_background_by_face' for clearing backgrounds of fringe
bitmaps.  (bug#70697)
2024-07-09 14:10:07 +08:00
Po Lu
8589fd9cae * src/androidvfs.c (android_saf_check_nonnull): Fix typo. 2024-07-07 10:24:24 +08:00
Po Lu
99e510977b Correct JNI string error checking and miscellaneous corrections
* src/android-emacs.c (main): Do not attempt to load the
bootstrap class path, which is redundant on all Android releases.

* src/android.c (initEmacs, android_browse_url): Do not assume
exceptions will be raised if GetStringUTFChars fails.  Decode
Android JNI strings as Qandroid_jni.

* src/androidvfs.c (android_saf_check_nonnull): New function.
(android_saf_new_mkdir): Likewise.
2024-07-07 10:21:47 +08:00
Stefan Monnier
83234cc1db (buf_bytepos_to_charpos): Fix mixup introduced in commit b300052fb4
Backport of commit 1b595b4598e7 since it turns out this "minor typo"
had disastrous consequences in pathological cases and explains
some of the problems seen in bug#71644 and bug#63040.

* src/marker.c (buf_bytepos_to_charpos): Don't compare byte-positions
with char-positions.
2024-07-06 15:07:06 -04:00
Eli Zaretskii
814710067f Improve warnings from native compiler
* src/comp.c (syms_of_comp) <native-compiler>: Rename from 'comp'.

* src/lread.c (maybe_swap_for_eln):
* lisp/emacs-lisp/comp.el (comp--fwprop):
* lisp/emacs-lisp/comp-run.el
(comp--accept-and-process-async-output, native--compile-async):
Adjust to the new symbol.
2024-07-05 22:00:08 +03:00
Eli Zaretskii
3eaf1abbff Fix MS-Windows build with native-compilation
* src/w32.c (globals_of_w32): Move re-initialization of
Vlibrary_cache from here...
* src/emacs.c (main): ...to here, as it must be after load_pdump.
(Bug#71916)
2024-07-03 22:13:42 +03:00
Eli Zaretskii
99230d7080 ; * src/w32fns.c (funhook): Restore mistakenly lost line. 2024-07-03 21:06:27 +03:00
Eli Zaretskii
5d2a115ab0 ; * src/fns.c (value_cmp): ASCIIfy. 2024-07-01 21:58:17 +03:00
Eli Zaretskii
7050128cfe ; * src/search.c (Fmatch_beginning, Fmatch_end): Doc fix. 2024-07-01 15:59:05 +03:00
Yuan Fu
b2c966f839
; * src/treesit.c (Ftreesit_query_capture): Fix typo. 2024-06-30 22:36:34 -07:00
Po Lu
38179f85f8 Merge remote-tracking branch 'savannah/scratch/windows-98' into emacs-30
* configure.ac (W32_LIBS): Don't link with -lusp10 on non-Cygwin
systems.

* src/emacs.c (main): Call globals_of_w32 before the startup
directory is initialized.

* src/w32.c (maybe_load_unicows_dll): Call
load_unicows_dll_for_w32fns.

* src/w32.h: Update prototypes.

* src/w32fns.c (Fx_create_frame, w32_create_tip_frame): Do not
register the Uniscribe font driver when unavailable.
(pfnSHFileOperationW): New function pointer.
(Fsystem_move_file_to_trash): Load UNICOWS.DLL if not yet
loaded.  Call SHFileOperationW through said function pointer.
(pfnShellExecuteExW): New function pointer.
(Fw32_shell_execute) [!CYGWIN]: Load UNICOWS.DLL if not yet
loaded.  Call ShellExecuteExW through said function pointer.
(pfnShell_NotifyIconW): New function pointer.
(add_tray_notification, delete_tray_notification): Call
Shell_NotifyIconW through said function pointer.
(Fw32_notification_notify): Load UNICOWS.DLL.
(Fw32_notification_close): Return if Shell_NotifyIconW is
unavailable, as when UNICOWS.DLL has yet to be loaded.
(load_unicows_dll_for_w32fns): New function.

* src/w32notify.c (pfnReadDirectoryChangesW): New function
pointer.
(watch_completion, remove_watch, Fw32notify_add_watch)
(Fw32notify_rm_watch, Fw32notify_valid_p): Call
ReadDirectoryChangesW through said function pointer, and assert
its presence.
(globals_of_w32notify): Load ReadDirectoryChangesW from
KERNEL32.DLL.

* src/w32uniscribe.c (pfnScriptItemize, pfnScriptShape)
(pfnScriptPlace, pfnScriptGetGlyphABCWidth, pfnScriptFreeCache)
(pfnScriptGetCMap): New function pointers.
(uniscribe_close, uniscribe_shape, uniscribe_encode_char)
(uniscribe_check_otf_1): Call Uniscribe functions through the
same.
(syms_of_w32uniscribe_for_pdumper): Load Uniscribe library and
required functions from the same, and if unavailable, return
while leaving uniscribe_available intact.  On Cygwin, simply
assign USP10.DLL functions to the said new function pointers.
2024-06-30 10:08:35 +08:00
Yuan Fu
8819e5a45d
Fix treesit crash (bug#71681)
To reproduce the problem:

0. emacs -Q
1. eval: (add-to-list 'major-mode-remap-alist '(c-mode . c-ts-mode))
2. C-x v L
3. in the *vc-change-log* buffer move point to the commit 20af58d3a1
4. type D
5. crash caused by diff-font-lock-syntax fontification that uses treesit

Emacs: 6f2036243f (2024-06-23, latest master)
Tree-sitter: 3da7deed (2024-06-08, version 0.22.6)

The immediate cause of the crash is that tree-sitter accessed a node's
tree, but the tree is already deleted.  Commenting out the
ts_tree_delete line in treesit_ensure_parsed can "fix" the crash.

What happended, I think, is this:

1. Buffer modified, parser->need_reparse set to true,
parser->timestamp incremented.
2. A node is created from the parser, this node has the old tree but
the new timestamp (bad!).
3. Parser re-parses (treesit_ensure_parsed), new tree created, old
tree deleted.
4. Ftreesit_query_capture accessed the old node, and the old tree,
crash.

We shouldn't bump the parser timestamp when we set
parser->need_reparse to true; instead, we should bump the timestamp
when we actually reparsed and created a new tree.

* src/treesit.c (treesit_record_change): Don't bump parser timestamp.
(treesit_sync_visible_region): Don't bump parser timestamp.
(Ftreesit_parser_set_included_ranges): Don't bump parser timestamp.
(treesit_ensure_parsed): Bump parser timestamp.
(Ftreesit_query_capture): Add node check.
2024-06-29 16:49:52 -07:00
Po Lu
2d8881d526 Fix typo incurring leaks of face structures
* src/xfaces.c (free_realized_face): Always free realized face
structures, and avoid sending X requests when the display is not
available, not when it is.
2024-06-29 20:02:54 +08:00
Po Lu
cbede3d43d * src/w32uniscribe.c (syms_of_w32uniscribe_for_pdumper): Typos. 2024-06-27 21:42:19 +08:00
Po Lu
8d55b38e2a Fix Cygwin build
* src/w32uniscribe.c (syms_of_w32uniscribe_for_pdumper): Define
and retrieve handle to USP10.DLL on Cygwin.
2024-06-27 09:59:57 +08:00
Ken Brown
fb15affde8 Avoid compiler warnings in the Cygwin-w32 build
* src/w32fns.c [DEFAULT_IMAGE_BASE]: Don't define on Cygwin.
* src/cygw32.h (w32_get_resource): Add prototype.  (Bug#71786)
2024-06-26 15:58:35 -04:00