1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-30 12:21:25 -08:00
Commit graph

48320 commits

Author SHA1 Message Date
Po Lu
6c3369abe5 Make it easier to quit on Android
* src/android.c (android_write_event):
(JNICALL): Raise SIGIO on key press and window action events.
2023-05-01 13:51:12 +08:00
Po Lu
ddc16de869 Update Android port
* Makefile.in (extraclean): Clean in exec as well.
* configure.ac: Fix detection of absolute srcdir.  Also, pass
CFLAGS.
* exec/Makefile.in: (.c.o): Add -I. so config.h can be
found.:(.s.o): Don't create m4 temporary in srcdir.
* exec/config-mips.m4.in (DADDI2, DADDI3): New macros.  Define
to substitute if as cannot assemble daddi.
* exec/configure.ac (user_h): Look for user.h in asm/ as well.
Use new user.h.  Also look in ptrace.h on arm systems.  Check if
as supports daddi on mips64.
* exec/exec.c (check_interpreter): Fix char signedness bug.
* exec/loader-mips64el.s (__start): Use DADDI2 and DADDI3 for
two- and 3-operand daddi.
* exec/mipsel-user.h: Don't include sgidefs.h.
* java/INSTALL: Document that m4 is now required.
* src/android.c (android_rewrite_spawn_argv): Add missing NULL.
2023-05-01 11:28:22 +08:00
Po Lu
5550816f59 Work around system restrictions regarding exec
* doc/emacs/android.texi (Android Environment): Document
`android-use-exec-loader'.
* exec/exec1.c (main): Set program group of child process.
* src/android.c (android_rewrite_spawn_argv): New function.
* src/android.h: Update prototypes.
* src/androidfns.c (syms_of_androidfns): New variable
`android_use_exec_loader'.
* src/callproc.c (emacs_spawn): Rewrite the argument vector to
use exec1 if necessary.
2023-05-01 09:31:58 +08:00
Po Lu
4289ed6cff Merge remote-tracking branch 'origin/master' into feature/android 2023-04-30 08:25:24 +08:00
Eli Zaretskii
b408df11e3 Optimize search for composable characters in redisplay
* src/composite.c (composition_compute_stop_pos): Accept new
argument INCLUDE_STATIC, and look for potential static
compositions only if this argument is non-zero.
* src/xdisp.c:
* src/composite.c:
* src/indent.c: All callers adjusted.
* src/xdisp.c (compute_stop_pos): Don't search for static
compositions.  Search for automatic compositions only after the
iterator gets past the composition stop_pos computed last time.
Use a better position for limiting search for automatic
compositions.  (Bug#62780)
2023-04-29 11:50:47 +03:00
Po Lu
3d7c06869d Update Android port
* build-aux/ndk-build-helper.mk (TARGET_ARCH): Define variable.
* configure.ac (ENABLE_CHECKING, CHECK_STRUCTS)
(GC_CHECK_STRING_OVERRUN, GC_CHECK_STRING_FREE_LIST, GLYPH_DEBUG)
(GC_CHECK_STRING_BYTES): Enable checking correctly on Android.
* java/README: Fix typos.
* m4/ndk-build.m4 (ndk_run_test): Pass target arch.
* src/android.c (android_get_content_name, android_close)
(android_fclose, android_check_string): Fix various typos caught
by checking.
* src/charset.c (load_charset_map_from_file): Call emacs_fclose,
not fclose.
* src/image.c (image_set_transform): Fix thinko.
(png_load_body, jpeg_load_body, gif_load): Call emacs_fclose,
not fclose.  Use open instead of fdopen.
* src/xfaces.c (Fx_load_color_file): Likewise.
2023-04-29 08:27:44 +08:00
Po Lu
a87272183b Merge remote-tracking branch 'origin/master' into feature/android 2023-04-28 11:53:06 +08:00
Po Lu
a97c382682 Merge from origin/emacs-29
a40f181623 Fix two crashes upon startup
44ebd9cbd5 Eglot: explain how to update Eglot in manual (bug#62720)
941ef044f2 Eglot: fix edge case when deleting inlay hint overlays
a365984d9e package-upgrade[-all]: Expand docstrings to note the curr...
f965f35b33 Rename all functions called package-*-update-* to package...
31b58161bb Fix FOR_EACH_TAIL in c-ts-mode (bug#62951)
0cf6e0998b * Makefile.in (distclean): Remove the 'native-lisp' direc...
933705d61e Improve greek-ibycus4 input method

# Conflicts:
#	etc/NEWS
2023-04-28 11:51:01 +08:00
Po Lu
a40f181623 Fix two crashes upon startup
* src/image.c (image_create_bitmap_from_data)
(image_create_bitmap_from_file): Specify a Window or a Pixmap
describing the screen, not a back buffer drawable which may not exist.
Otherwise, Emacs crashes on startup when a bitmap icon is in use.
2023-04-28 11:47:46 +08:00
Po Lu
ab10d1f663 Update Android port
* src/image.c (image_create_bitmap_from_data): Fix typo in
preprocessor conditionals.
2023-04-27 19:23:29 +08:00
Po Lu
5f389f4b63 Merge remote-tracking branch 'origin/master' into feature/android 2023-04-26 08:48:12 +08:00
Eli Zaretskii
095ec506d0 Merge from origin/emacs-29
524e161a53 Followup to addition of TUTORIAL.fa
76f50df153 Add Farsi/Persian translation of the tutorial
8eacfaea6d Add Mongolian language environments
fe8efbb8f7 Document the 'end-session' event on MS-Windows
d80f959bed Update to Org 9.6.4-9-g8eb209
98c6cfcbe4 Don't support versioned grammar libraries on MS-Windows
8f71c1546d Accept versioned tree-sitter language grammar files
99add09d5e tab-bar-new-tab: inhibit side-window checks
087e818194 * etc/NEWS: Fix outline level.  (Bug#63042)
d7f38558c4 ; Improve font selection for Traditional Mongolian
965c5e0231 Fix rendering of Traditional Mongolian script
9a0f10b5f8 Fix line-number-at-pos when POSITION is out of narrowing
4e0f4292aa ; * etc/tutorials/TUTORIAL: Fix punctuation.
dec2ac0c65 Fix exiting Emacs after saving a tutorial

# Conflicts:
#	etc/NEWS
2023-04-25 09:57:23 -04:00
Eli Zaretskii
98c6cfcbe4 Don't support versioned grammar libraries on MS-Windows
* src/treesit.c (treesit_load_language_push_for_each_suffix):
Don't append ".0.0" on WINDOWSNT.
2023-04-24 21:46:35 +03:00
Yuan Fu
8f71c1546d
Accept versioned tree-sitter language grammar files
By discussion on emacs-devel, titled "Versioned Tree-sitter parser
libraries".

* src/treesit.c (Vtreesit_str_dot_0): New variable.
(treesit_load_language_push_for_each_suffix): Additionally look for
lib_base_name.0 and lib_base_name.0.0.
(syms_of_treesit): Initialize Vtreesit_str_dot_0.
2023-04-24 10:38:40 -07:00
Eli Zaretskii
9a0f10b5f8 Fix line-number-at-pos when POSITION is out of narrowing
* src/fns.c (Fline_number_at_pos): Don't signal an error when
ABSOLUTE is nil and POSITION is outside of the narrowing, like the
original Lisp implementation did.  Minor speedup by using the byte
position where it is available from the get-go.  (Bug#62857)
2023-04-22 19:27:16 +03:00
Po Lu
74fd40c030 Merge remote-tracking branch 'origin/master' into feature/android 2023-04-22 09:21:25 +08:00
Eli Zaretskii
f1ce49d148 Merge from origin/emacs-29
3899acbb33 ; * src/fringe.c: Fix description of large circle.  (Bug#...
2b10e1827d sql: add missing postgresql types
9ac1259278 Fix display of menu-bar bindings of commands in *Help* bu...
ecdd3a9efa Improve Completion Example section in the Emacs manual
626e1ac62b Improve 'message-server-alist' docstring
327986936c Add index entry for fallback modes
1c4783c330 ; * etc/NEWS: Copyedits and grammar fixes.
3d6f755331 xref-search-program-alist: Fix searching larger file list...
1b8b2cf61b Fix typo and inaccuracy in the ELisp Reference manual
df17682ebf ; Support 'dart-ts-mode' in Eglot
e0dc60e078 ; Fix typos in gdb-mi.el
60560cc7ad Fix description of lexical environment's internals
1456adf424 ; Eglot: fix a typo in a customization type
2f59595f5f ; * etc/NEWS: Grammar fixes.
596b780ab7 Update to Org 9.6.4-2-g0f6ae7
a0b04a2247 Documentation copyedits for 'package-install-upgrade-buil...
580d8278c5 Allow upgrading built-in packages with 'package-install'
329304c23f ; * src/term.c (init_tty): Fix last change.  (Bug#62877)
200dbf7d30 Minor changes in c-ts-mode.el's support of DEFUNs
9686b015a0 Fix strike-through attribute support on TTY frames
39035fbfc5 Avoid crashes in 'describe-keymap' due to shadowing

# Conflicts:
#	etc/NEWS
#	lisp/progmodes/c-ts-mode.el
#	lisp/progmodes/eglot.el
2023-04-21 07:29:14 -04:00
Eli Zaretskii
3899acbb33 ; * src/fringe.c: Fix description of large circle. (Bug#62961) 2023-04-20 13:06:24 +03:00
Po Lu
a94e9f9644 Merge remote-tracking branch 'origin/master' into feature/android 2023-04-20 08:47:14 +08:00
Eli Zaretskii
a01528c950 ; * src/fns.c (assq_no_signal): Fix a typo in a comment. 2023-04-19 19:30:55 +03:00
Po Lu
55388c288a Merge remote-tracking branch 'origin/master' into feature/android 2023-04-18 07:08:25 +08:00
Yuan Fu
a46201f57e
; Fix typos in treesit.c
* src/treesit.c (treesit_traverse_validate_predicate)
(Ftreesit_node_match_p): Fix typos.
2023-04-16 20:35:45 -07:00
Yuan Fu
d005e685e1
New helper function assq_no_signal
* src/fns.c (assq_no_signal): New function.
* src/lisp.h (assoc_no_signal): Declare it.
* src/treesit.c (safe_assq): Remove function.
(treesit_traverse_get_predicate): Change safe_assq to assq_no_signal.
2023-04-16 20:33:51 -07:00
Po Lu
02c214a5e0 Merge remote-tracking branch 'origin/master' into feature/android 2023-04-17 08:14:03 +08:00
Mattias Engdegård
3c8167ec0f Fit symbol_redirect snugly in two bits
This allows the C compiler to do away with all default clauses when
switching on the `redirect` field.

* src/lisp.h (enum symbol_redirect): Use values in the 0..3 range,
which also matches the old comment in struct Lisp_Symbol.
(enum symbol_interned, enum symbol_redirect)
(enum symbol_trapped_write): Comment members.  Remove explicit values.
(struct Lisp_Symbol): Shrink the `redirect` member to 2 bits.
Use the correct type for the `interned` field.
Move value comments to their types.
* src/pdumper.c (dump_symbol): Update hashes.
2023-04-16 14:07:36 +02:00
Eli Zaretskii
329304c23f ; * src/term.c (init_tty): Fix last change. (Bug#62877) 2023-04-16 11:16:45 +03:00
Eli Zaretskii
9686b015a0 Fix strike-through attribute support on TTY frames
* src/term.c (init_tty): Fix setting the strike-through capability
with "smxx".  (Bug#62265)
2023-04-16 09:19:15 +03:00
Eli Zaretskii
39035fbfc5 Avoid crashes in 'describe-keymap' due to shadowing
* src/keymap.c (describe_vector): Handle shadowing by something
other than a symbol.  (Bug#62867)
2023-04-16 08:51:22 +03:00
Po Lu
fe9e48a16a Merge remote-tracking branch 'origin/master' into feature/android 2023-04-16 08:16:07 +08:00
Eli Zaretskii
7191318b71 Merge from origin/emacs-29
864a4dc236 Fix compilation of w32.c with old MinGW system headers
a22eb9ae0f ruby-add-log-current-method: Reduce the use of 'nreverse'
17d803d0a7 Fix detection of WebP images by their signature
43290391ce ; Eglot: make version parseable by version-to-list
6e6e8b5c97 Add more documentation for the keys of `package-vc-select...
7972b76c2c ; vc-checkout: Wrap var lookup in 'bound-and-true-p'
e9fef1d70f vc-checkout: Try to use the vc-dir's backend first
372e024acc ; Fix wallpaper-tests on XFCE
7055fd8e43 Improve documentation related to 'ispell-complete-word'
61fd017abd * configure.ac: Add -lbsd on Haiku.
05971c4d9a Add menu to 'c-ts-mode' and 'c++-ts-mode'

# Conflicts:
#	lisp/progmodes/eglot.el
#	lisp/progmodes/ruby-mode.el
2023-04-15 13:02:04 -04:00
Eli Zaretskii
5fecdbcd81 Merge from origin/emacs-29
5ef7ff0573 ; Start a new ChangeLog.4 file.
11126c6d30 Fix 'C-h k' for "Paste from Kill Menu" in context menus
74ddfe811f ; * doc/misc/calc.texi (Rewrites Tutorial): Fix a typo (b...
08cda286c3 Improve the documentation of the XDS support
14d1c00e80 Allow reindentation of images inserted by 'mm-inline-image'
b63a9eda01 Fix "C-h k" and "C-h c" with Paste from Kill Menu
b36c21e27d Change cursor color on NS port when it matches the face b...
96714c106b Improve documentation of image-related commands
6a2863ca01 Fix handling of sliced images
5be79fd05a ; * etc/NEWS: Announce 'cyrillic-mongolian' IM.
ca1a0fda98 ; Fix last change.
ce63462dbd Add cyrillic-mongolian input method
5880179270 ; Minor addition to the Emacs FAQ
88847dee12 Jsonrpc: don't bind inhibit-read-only to t so early
cb8c87a423 Allow active region when IM is used

# Conflicts:
#	etc/NEWS
2023-04-15 12:43:37 -04:00
Yuan Fu
67ab357cdc
Support treesit-thing-settings in search functions
* src/treesit.c (safe_assq)
(treesit_traverse_get_predicate): New functions.
(treesit_traverse_validate_predicate)
(treesit_traverse_match_predicate): Support symbols.
(Ftreesit_search_subtree)
(Ftreesit_search_forward)
(Ftreesit_induce_sparse_tree)
(Ftreesit_node_match_p): Move validation down so we can pass LANGUAGE
to it.
2023-04-14 16:58:12 -07:00
Yuan Fu
00fba2a4d5
Add a recursion level limit for tree-sitter search predicates
* src/treesit.c:
(treesit_traverse_validate_predicate): Check for recursion level.
(Ftreesit_search_subtree)
(Ftreesit_search_forward)
(Ftreesit_induce_sparse_tree)
(Ftreesit_node_match_p): Update uses of
treesit_traverse_validate_predicate.
2023-04-14 16:54:25 -07:00
Yuan Fu
9f777475be
; Minor fixes in treesit.c
* src/treesit.c:
(treesit_initialized): Make static.
(treesit_find_override_name): Add check for XCAR (tail).
(Ftreesit_parser_set_included_ranges): Fix comment.

(treesit_recursion_limit): Change to a compile time
constant.
(treesit_symbol_to_c_name): Precompute the length.
(Ftreesit_pattern_expand): Use predefined symbols.
(treesit_cursor_helper)
(Ftreesit_search_subtree)
(Ftreesit_induce_sparse_tree): Update treesit_recursion_limit.
(syms_of_treesit): New symbols.
2023-04-14 16:54:25 -07:00
Yuan Fu
531b343c3c
Add treesit-thing-settings
* lisp/treesit.el (treesit--things-around)
(treesit--navigate-thing)
(treesit-thing-at-point): Update docstring.
* src/treesit.c (treesit_traverse_validate_predicate): Refer to
treesit-thing-settings.
(syms_of_treesit): Add Vtreesit_thing_settings.
2023-04-14 16:54:22 -07:00
Po Lu
5919511881 Merge remote-tracking branch 'origin/master' into feature/android 2023-04-15 07:28:19 +08:00
Yuan Fu
a4de6d8dd3
Add treesit-node-match-p
* src/treesit.c (Ftreesit_node_match_p): New function.
2023-04-14 15:52:30 -07:00
Mattias Engdegård
c60b59e04c Disallow creation of circular variable alias chains
Make `defvaralias` signal an error upon attempts to create variable
alias cycles.  This detects errors earlier and makes the alias
traversal during execution simpler and faster since no cycle detection
is needed elsewhere.
Now variable and function aliases are handled identically in these
respects.

* src/lisp.h (indirect_variable): Remove declaration.
* src/data.c (indirect_variable): Remove.
(Findirect_variable): Update doc string.  Simplify alias resolution.
(Fboundp, find_symbol_value, set_internal, default_value)
(set_default_internal, Fmake_variable_buffer_local)
(Fmake_local_variable, Fkill_local_variable, Flocal_variable_p)
(Flocal_variable_if_set_p, Fvariable_binding_locus):
* src/buffer.c (buffer_local_value):
* src/eval.c (specbind): Simplify variable alias resolution.
(Fdefvaralias): Update doc string.  Check for cycles.
* doc/lispref/variables.texi (Variable Aliases):
Mention that `defvaralias` can signal `cyclic-variable-indirection`
but `indirect-variable` cannot.
* etc/NEWS: Announce the change.
* test/src/eval-tests.el (eval-tests-defvaralias): New test.
2023-04-14 19:34:23 +02:00
Robert Pluim
7974a9349f * src/nsterm.m (check_native_fs): Add missing void arg. 2023-04-14 16:50:02 +02:00
Mattias Engdegård
f14a3cafb4 Use BASE_EQ in treesit.c
* src/treesit.c (Ftreesit_node_check, Ftreesit_pattern_expand)
(Ftreesit_query_capture, treesit_traverse_validate_predicate)
(treesit_traverse_match_predicate):
Use BASE_EQ instead of EQ where this is obviously correct.
2023-04-14 13:07:46 +02:00
Eli Zaretskii
14e809ddff Fix style and unwinding code in treesit.c
This was supposed to be a cherry-pick from master, but
isn't, due to the unnecessary rush to fix master without
cleaning up the mess first and without separating changes
that can and cannot be backported.
* src/treesit.c (treesit_traverse_cleanup_cursor): Fix indentation
style.
(Ftreesit_search_subtree, Ftreesit_search_forward)
(Ftreesit_induce_sparse_tree): Fix specpdl unwinding.  (Bug#62823)
Do not merge to master.
2023-04-14 09:21:05 +03:00
Yuan Fu
759cdf1e51 Catch signals produced by PRED in tree-sitter search functions
Earlier we switched to using cursors rather than nodes to traverse the
parse tree.  Because cursors need cleanup, we have to catch signals
thrown by the predicate functions and free the cursor. Failing to do
this will result in leaking the cursor whenever the predicate function
signals in a search function.  This change fixes the leak.
* src/treesit.c (treesit_traverse_cleanup_cursor): New function.
(Ftreesit_search_subtree)
(Ftreesit_search_forward)
(Ftreesit_induce_sparse_tree): Catch signals.  (Bug#62823)

(cherry picked from commit a5eb9f6ad4)
2023-04-14 09:07:46 +03:00
Yuan Fu
de34de3b35
Fix previous commit on tree-sitter
* src/treesit.c:
(treesit_traverse_validate_predicate): Don't accept symbols.
(treesit_traverse_match_predicate): Don't accept symbols, and use
correct variable for the regexp and pred check.

* test/src/treesit-tests.el:
(treesit-search-forward-predicate): Fix the test.
2023-04-13 18:47:41 -07:00
Po Lu
618ba26ed1 Merge remote-tracking branch 'origin/master' into feature/android 2023-04-14 08:02:14 +08:00
Po Lu
2c3ca78e81 Fix bugs in treesit.o
* src/treesit.c (treesit_traverse_match_predicate): Remove
redundant cast.
(treesit_search_forward, treesit_traverse_cleanup_cursor)
(Ftreesit_search_subtree, Ftreesit_search_forward)
(Ftreesit_induce_sparse_tree): Fix coding style and specpdl
unwinding.
2023-04-14 08:01:12 +08:00
Yuan Fu
361c5fc2d8
Support more predicates in tree-sitter search functions
Right now we support regexp strings and predicate functions for the
PRED argument. This change adds support for (not ...) (or ...)
and (regexp . pred) predicates.

I still need to find a place to document the supported shapes of a
predicate.

* src/treesit.c (treesit_traverse_validate_predicate): New function.
(treesit_traverse_match_predicate): Support more predicate shapes.
(treesit_search_dfs):
(treesit_search_forward)
(treesit_build_sparse_tree): Fix docstring (unrelated to this change).
(Ftreesit_search_subtree)
(Ftreesit_search_forward)
(Ftreesit_induce_sparse_tree): Use the new function to validate
predicate shape.
(syms_of_treesit): New error Qtreesit_invalid_predicate.

* test/src/treesit-tests.el:
(treesit--ert-search-setup): Add edebug declaration.
(treesit-search-forward-predicate)
(treesit-search-forward-predicate-invalid-predicate): New tests.
2023-04-13 15:08:51 -07:00
Yuan Fu
a5eb9f6ad4
Catch signals produced by PRED in tree-sitter search functions
Earlier we switched to using cursors rather than nodes to traverse the
parse tree.  Because cursors need cleanup, we have to catch signals
thrown by the predicate functions and free the cursor. Failing to do
this will result in leaking the cursor whenever the predicate function
signals in a search function.

This change fixes the leak.

* src/treesit.c (treesit_traverse_cleanup_cursor): New function.
(Ftreesit_search_subtree)
(Ftreesit_search_forward)
(Ftreesit_induce_sparse_tree): Catch signals.
2023-04-13 15:08:51 -07:00
Mattias Engdegård
abb43a6236 Stop pretending that specpdl overflow can ever occur
* src/eval.c (grow_specpdl_allocation): Remove impossible error.
* src/data.c (syms_of_data): Note obsolence of
`excessive-variable-binding`.
2023-04-13 17:25:25 +02:00
Po Lu
e11e56a057 Update Android port
* doc/emacs/android.texi (Android Fonts): Update documentation.
* doc/lispref/frames.texi (Accessing Selections, X Selections):
Fix typos.
* src/sfntfont-android.c (system_font_directories)
(init_sfntfont_android): Add `/product/fonts'.
2023-04-13 19:54:54 +08:00
Eli Zaretskii
864a4dc236 Fix compilation of w32.c with old MinGW system headers
* src/w32.c (CONSOLE_FONT_INFO): Make sure the definition is not
visible for MinGW versions whose w32api's version is before 5.2.0.
(Bug#52792)
2023-04-13 08:18:33 +03:00