1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-10 17:02:06 -07:00
Commit graph

47962 commits

Author SHA1 Message Date
Eli Zaretskii
d440ca47ed ; * src/treesit.c: Fix typos and wording in comments. 2022-11-26 17:50:36 +02:00
Gregory Heytings
558084c7f7 Improve locked narrowing around low-level hooks.
* src/buffer.c (syms_of_buffer): Two new variables,
'long-line-locked-narrowing-region-size' and
'long-line-locked-narrowing-bol-search-limit', to make the locked
narrowing around low-level hooks configurable.

Increase the default value of 'long-line-threshold'.  After
carefully considering the (few) bug reports about long line
optimizations, I concluded that the previous default value was too
low.

* src/xdisp.c (get_locked_narrowing_begv)
(get_locked_narrowing_zv): Two new functions.
(handle_fontified_prop, reseat): Use them.

* src/keyboard.c (safe_run_hooks_maybe_narrowed): Use them.

* src/dispextern.h (struct it): Add two new fields to store the
values returned by these functions.
Make them externally visible.

* src/editfns.c: (Fsave_restriction): Update docstring.
2022-11-26 15:10:17 +01:00
Po Lu
5281e85513 Reduce wasted cycles in x*.c
* src/xfns.c (compute_tip_xy, Fx_show_tip):
* src/xselect.c (x_own_selection, x_get_local_selection)
(x_clear_frame_selections): Call CAR and CDR, not Fcar and Fcdr.
2022-11-26 18:58:25 +08:00
Yuan Fu
0369dcacf3
Fix tree-sitter assertion error (bug#59574)
* src/treesit.c (treesit_sync_visible_region): Initialize
visible_beg/end when tree is NULL.
2022-11-25 19:00:22 -08:00
Yuan Fu
4ffca85f1e
Rename treesit_ensure_position_synced to treesit_sync_visible_region
* src/treesit.c: Rename to better convey the purpose of the function.
2022-11-25 19:00:22 -08:00
Yuan Fu
245366b18a
; Add comments in treesit.c and treesit.h
* src/treesit.c
* src/treesit.h: Add (and fix) comments.
2022-11-25 19:00:22 -08:00
Po Lu
123e90f6d3 Fix no-accept-focus handling for embedded frames
* src/xterm.c (handle_one_xevent): Don't focus embedded frames
on click if they have `no-accept-focus' set.
2022-11-26 08:47:25 +08:00
Gregory Heytings
16b8b0d1e0 Save and restore narrowing locks in 'save-restriction'.
* src/editfns.c: (Fsave_restriction): Save and restore narrowing
locks.  Suggested by Stefan Monnier.
(narrowing_locks_save, narrowing_locks_restore): Helper functions.

* lisp/subr.el (with-narrowing-1): Simplify.
2022-11-26 01:33:07 +01:00
Gregory Heytings
9dee6df39c Reworked locked narrowing.
* src/editfns.c: (narrowing_locks): New alist to hold the narrowing
locks and their buffers.
(narrowing_lock_get_bound, narrowing_lock_peek_tag)
(narrowing_lock_push, narrowing_lock_pop): New functions to access
and update 'narrowing_locks'.
(reset_outermost_narrowings, unwind_reset_outermost_narrowing):
Functions moved from src/xdisp.c, and rewritten with the above
functions.
(Fwiden): Use the above functions. Update docstring.
(Fnarrow_to_region, Fnarrowing_lock, Fnarrowing_unlock): Use the above
functions.
(syms_of_editfns): Remove the 'narrowing-locks' variable.

* src/lisp.h: Make 'reset_outermost_narrowings' externally visible.

* src/xdisp.c (reset_outermost_narrowings)
unwind_reset_outermost_narrowing): Functions moved to src/editfns.c.

* lisp/subr.el (with-locked-narrowing): Improved macro, with a helper
function.
2022-11-25 18:51:39 +01:00
Eli Zaretskii
98c69b2556 ; * src/sqlite.c (Fsqlite_version): Doc fix. 2022-11-25 15:00:07 +02:00
Mattias Engdegård
f35dc7058b Add sqlite library version string retrieval function (bug#58766)
* src/sqlite.c (sqlite3_libversion, load_dll_functions):
Make sqlite3_libversion available.
(Fsqlite_version): New.
(syms_of_sqlite): Define sqlite-version.
* doc/lispref/text.texi (Database): Document.
* test/src/sqlite-tests.el (sqlite-returning): `RETURNING` was added
in sqlite 3.35; skip the test for older versions.
2022-11-25 11:03:10 +01:00
Stefan Kangas
a7f8087d7f Remove unused parameter from image_create_pix_container
* src/image.c (image_create_pix_container): Remove unused
frame parameter. Update callers.
2022-11-25 10:18:11 +01:00
Paul Eggert
55f6f1c82a Work around lsp-mode compatibility bug
* src/timefns.c (Ftime_subtract): Respect current-time-list when
args are eq (Bug#59506).
2022-11-24 12:57:02 -08:00
Philip Kaludercic
697aaeb7b3 ; * src/emacs.c (usage_message): Fix typo
Author:
2022-11-24 20:08:36 +01:00
Philip Kaludercic
80ed35866e * src/emacs.c (usage_message): Add missing --init-directory entry 2022-11-24 19:50:18 +01:00
Gregory Heytings
ba9315b164 Merge master into feature/improved-locked-narrowing. 2022-11-24 14:21:30 +01:00
Po Lu
9fcff114b8 Fix reentrancy problem/crash in xterm.c
* src/xterm.c (x_ignore_errors_for_next_request)
(x_stop_ignoring_errors): Be paranoid and block input inside the
protected section.
(x_focus_frame): Block input around critical section.
2022-11-24 20:10:32 +08:00
Eli Zaretskii
8252211833 Avoid assertion violations in treesit.c when editing non-ASCII
* src/treesit.c (make_treesit_parser): Use byte positions when
initializing 'lisp_parser'.  This avoids assertion violations when
the buffer has non-ASCII characters.
2022-11-24 11:09:51 +02:00
Yuan Fu
31fe6b066c
; * src/treesit.c (treesit_predicate_match): Move use below check. 2022-11-23 19:48:28 -08:00
Yuan Fu
10f8f9a185
; * src/treesit.c: Minor comment improvement. 2022-11-23 13:27:56 -08:00
Eli Zaretskii
275bc78286 ; * src/pdumper.c (dump_buffer, dump_vectorlike): Update hashes. 2022-11-23 20:22:19 +02:00
Eli Zaretskii
43e616aca5 Improve documentation of locale-specific string comparison
* doc/lispref/strings.texi (Text Comparison):
* src/fns.c (Fstring_collate_equalp): Improve documentation of
'string-collate-equalp' and 'string-collate-lessp'.  (Bug#59275)
2022-11-23 16:54:01 +02:00
Eli Zaretskii
5568ac2db0 Fix error signaled by mouse-highlight on mode line
* src/xdisp.c (note_mode_line_or_margin_highlight): Avoid
signaling args-out-of-range errors when mode-line format uses
min-width 'display' property.  (Bug#59452)
2022-11-23 16:18:55 +02:00
Po Lu
4306091087 Improve last change to xterm.c
* src/xfns.c (Fx_display_last_user_time): Reject overly large
timestamps.
* src/xterm.c (x_display_set_last_user_time, handle_one_xevent):
New functions.
2022-11-23 20:40:35 +08:00
Stefan Kangas
5e8c62ffca ; Fix typos 2022-11-23 05:49:22 +01:00
Yuan Fu
95d783f27c
; * src/casefiddle.c (casify_region): Stylistic change. 2022-11-22 12:37:38 -08:00
Eli Zaretskii
368d2531be Fix 'treesit-max-buffer-size' and its use
* lisp/treesit.el (treesit-max-buffer-size): Avoid overflow in
computing buffer-size limit.  Account for 32-but systems built
"--with-wide-int".  Extend doc string.
(treesit-ready-p): Compare the limit with the size of the buffer
in bytes, not in characters.

* src/treesit.c (treesit_check_buffer_size): Measure buffer size
in bytes.
2022-11-22 20:22:41 +02:00
Eli Zaretskii
fa567684fa ; Fix comparisons in treesit.c
* src/treesit.c (Ftreesit_parser_add_notifier)
(Ftreesit_parser_remove_notifier): Fix comparison with Lisp
objects.  (Bug#59483)
2022-11-22 18:56:08 +02:00
Po Lu
350918e7be Adjust x_display_set_last_user_time for Xlib sign-extension
* src/xterm.c (x_display_set_last_user_time): Adjust for Xlib
sign extending fields in client messages to 64 bit long, which
then break x_display_set_last_user_time after 24 days, as Time
is unsigned long for historical reasons.  (bug#59480)
2022-11-22 20:58:07 +08:00
Ihor Radchenko
7c090ebf6b Improve the doc string of 'string-collate-lessp'
* src/fns.c (Fstring_collate_lessp): Clarify that
IGNORE-CASE argument might be ignored when the operating
system does not implement string collation for the
specified locale.  (Bug#59275)
2022-11-22 14:50:35 +02:00
Po Lu
60fac8a5e0 Avoid potentially expensive XFlush and fix ordering
* src/xterm.c (x_raise_frame): Don't call XFlush without a
request being made.
(x_lower_frame): Fix ordering wrt to xwidget view lowering.
2022-11-22 20:04:47 +08:00
Yuan Fu
e494ca4f4d
Fix treesit_record_change in casify_region
This fixes bug#59455.

* src/casefiddle.c: Always record changes.
2022-11-22 01:06:52 -08:00
Stefan Kangas
40539c7587 ; Fix typos 2022-11-22 02:24:20 +01:00
Yuan Fu
aaeaa310f0
Merge remote-tracking branch 'savannah/master' into feature/tree-sitter 2022-11-21 12:54:35 -08:00
Yuan Fu
aa6958c04e
; * src/treesit.c (treesit_load_language): Move call to eassume.
If handle is ever going to be NULL, it will be when error != NULL, so
we should only eassume handle != NULL after the check for error.
2022-11-21 09:31:14 -08:00
Mattias Engdegård
87c696b7a8 ; Repair build without tree-sitter 2022-11-21 15:41:28 +01:00
Po Lu
3069849bd4 * src/treesit.c (treesit_load_language): Fix uninitialized uses. 2022-11-21 14:10:21 +08:00
Po Lu
d452539966 Avoid usage of intern_c_string in treesit.c
* src/treesit.c (Ftreesit_pattern_expand): Use DEFSYM'd symbols
when the naming makes sense.
(syms_of_treesit): Add new defsyms QCanchor, QCequal, QCmatch.
2022-11-21 14:10:21 +08:00
Po Lu
43f25120c9 Stylistic fixes to treesit.c
* src/treesit.c (treesit_make_ranges):
(Ftreesit_parser_set_included_ranges): Fix coding style.
2022-11-21 14:10:21 +08:00
Juanma Barranquero
8ec8decd9f Avoid native compiler setting user-init-file to warnings.el (bug#59358)
* src/lread.c (maybe_swap_for_eln): Use a delayed warning
instead of `display-warning' to avoid a recursive call to
Fload while loading the init file that sets `user-init-file'
to a bogus value.
2022-11-20 21:40:08 +01:00
Po Lu
8874cd908c Coalesce duplicate scroll valuator handling code
Also, write more commentary.

* src/xterm.c (xi_populate_scroll_valuator): New function.
Describe the meaning of each field in xi_scroll_valuator_t.
(xi_populate_device_from_info, xi_handle_new_classes): Factor
out duplicate code to that function.
2022-11-20 21:03:18 +08:00
Stefan Kangas
16318bfb51 ; Fix typos 2022-11-20 12:59:39 +01:00
Eli Zaretskii
7b09ed28ba Advise against using too-high GC thresholds
* doc/lispref/internals.texi (Garbage Collection):
* src/alloc.c (syms_of_alloc) <gc-cons-threshold>
<gc-cons-percentage>: Advise against enlarging the GC thresholds
more than needed and for prolonged periods of time.
2022-11-20 13:10:08 +02:00
Po Lu
07127e9c29 Fix error trapping in x_set_mouse_color
* src/xfns.c (x_set_mouse_color): Use
x_uncatch_errors_after_check right after x_had_errors_p.  Then,
trap errors around FreeCursor requests, since some of the IDs
may not name valid cursors.
2022-11-19 18:47:28 +08:00
Po Lu
12e1e9c797 Fixes to fast mouse position reporting
* src/xterm.c (x_fast_mouse_position): New function.  Factor out
most of the fast mouse position code here.  Correctly port some
Haiku code to take into account multiple displays.  Report
scroll bar coordinates correctly.
(XTmouse_position): Call it.
2022-11-19 15:25:07 +08:00
Po Lu
b18d4dbe0d Fix automatic DPI adjustment and add workarounds for some systems
* lisp/faces.el (x-create-frame-with-faces): New field
`delayed-font'.  Set the `font-parameter' property to `font' in
the given parameter list after face-set-after-frame-default is
called.
* src/fontset.c (Fset_fontset_font): Avoid changing
`font-parameter' with the call to Fmodify_frame_parameters.
* src/frame.c (gui_set_frame_parameters_1): New function.
Factor out gui_set_frame_parameters here, and add an argument
DEFAULT_PARAMETER.  If the `font' parameter is set, and
`default_parameter' is not, then set the `font-parameter' frame
parameter to the `font' parameter as well, to keep track of
which user-specified `font' frame parameter set the default
face's font on the frame.
(gui_set_frame_parameters): Call gui_set_frame_parameters_1 with
new arg set to false.
(gui_set_font): Remove broken implementation of
`font-parameter'.
(gui_default_parameter): If the default value was used, then
call gui_set_frame_parameters_1 with the new argument set to
false.  This is because no font was specified as a frame
parameter by the user, so Freconsider_frame_fonts is free to do
anything it wants.
(Freconsider_frame_fonts): If `font-parameter' is set, then use
it.
(syms_of_frame): New defsym Qfont_parameter.

* src/frame.h: Update prototypes.

* src/haikuterm.c (haiku_default_font_parameter):
* src/pgtkfns.c (pgtk_default_font_parameter):
* src/w32fns.c (w32_default_font_parameter): Stop setting
`font-parameter' here.  This code resulted in decades of
automatic font rescaling not working correctly.

* src/xfaces.c (set_font_frame_param): Clear the
`font-parameter' frame parameter.
(Finternal_merge_in_global_face):
* src/xfns.c (x_default_font_parameter): Avoid changing
`font-parameter' in response to changes to face attributes.
* src/xsettings.c (apply_xft_settings): Add workaround for
Cairo.  (bug#59371, bug#59347, bug#59283, bug#59271, bug#59285,
bug#59306.)
2022-11-19 13:59:53 +08:00
Po Lu
10701635cf Fix bug#59371
* src/frame.c (Freconsider_frame_fonts): If a font parameter was
set, create a params alist with it.  Then, pass it to both
default_font_parameter and face-set-after-frame-default.
(bug#59371)
2022-11-19 11:19:41 +08:00
Po Lu
b23a4a1505 Fix earlier changes to keyboard.c
* src/keyboard.c (coords_in_menu_bar_window): New function.
(make_lispy_event): Do not process menu bar events on window
system frames if there is no menu bar window or the click lies
outside.
2022-11-19 11:13:15 +08:00
Po Lu
4921bd7bac Fix build with ext menu bar
* src/keyboard.c (make_lispy_event): Don't access
menu_bar_window when !HAVE_EXT_MENU_BAR.
2022-11-19 08:42:56 +08:00
Manuel Giraud
409f0430b6 Fix click position to menu bar entry with no-toolkit
* src/keyboard.c (make_lispy_event): Use x_y_to_hpos_vpos to
compute correct menu bar position should the menu face change.
* src/xdisp.c (x_y_to_hpos_vpos): Not static anymore.
* src/dispextern.h: Export x_y_to_hpos_vpos.
2022-11-19 08:22:45 +08:00