1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-17 12:21:54 -07:00
Commit graph

48437 commits

Author SHA1 Message Date
Po Lu
01bea42cbf Avoid responding to input method queries asynchronously
* src/androidterm.c (handle_one_android_event): Don't answer
queries here; just rely on the event interrupting
android_select.  This avoids exposing buffer contents to input
methods while a command is being executed.
* src/textconv.c (TEXTCONV_DEBUG, really_commit_text)
(really_finish_composing_text, really_set_composing_text)
(really_set_composing_region, really_delete_surrounding_text)
(really_set_point_and_mark, get_extracted_text): Add debugging
printouts.
2023-06-09 18:05:26 +08:00
Po Lu
41a99ea993 ; * src/android.c (android_get_gc_values): Remove redundancy. 2023-06-09 14:16:08 +08:00
Po Lu
c321eea5af Block profiling signals in the Android UI thread
* java/org/gnu/emacs/EmacsNative.java (EmacsNative): New
function `setupSystemThread'.
* java/org/gnu/emacs/EmacsService.java (onCreate): Block all
signals except for SIGBUS and SIGSEGV in the UI thread.
* src/android.c (setupSystemThread): New function.
2023-06-09 14:03:50 +08:00
Po Lu
6d86ded544 Merge remote-tracking branch 'origin/master' into feature/android 2023-06-08 20:50:26 +08:00
Amritpal Singh
46b6d17505 Support files compressed by 'pigz'
* src/decompress.c (md5_gz_stream): Check 'stream.avail_in' as
well.  (Bug#63832)

Copyright-paperwork-exempt: yes
2023-06-08 12:40:44 +03:00
Po Lu
b1bd40dce1 Update Android port
* src/android.c (android_is_special_directory): New function.
(android_get_asset_name, android_content_name_p)
(android_get_content_name):
* src/android.h (android_is_special_directory)
(JNI_STACK_ALIGNMENT_PROLOGUE):
* src/fileio.c (check_mutable_filename):
* src/filelock.c (WTMP_FILE, make_lock_file_name):
* src/inotify.c (IN_ONLYDIR, Finotify_add_watch): Factor out
checks against asset and content directories to that function.
2023-06-08 14:04:31 +08:00
Po Lu
63339a9577 Update Android port
* java/org/gnu/emacs/EmacsInputConnection.java (beginBatchEdit)
(endBatchEdit, commitCompletion, commitText, deleteSurroundingText)
(finishComposingText, getSelectedText, getTextAfterCursor)
(getTextBeforeCursor, setComposingText, setComposingRegion)
(performEditorAction, performContextMenuAction, getExtractedText)
(setSelection, sendKeyEvent, deleteSurroundingTextInCodePoints)
(requestCursorUpdates): Ensure that the input connection is up
to date.
(getSurroundingText): New function.
* java/org/gnu/emacs/EmacsNative.java (getSurroundingText):
Export new C function.
* java/org/gnu/emacs/EmacsService.java (resetIC): Invalidate
previously created input connections.
* java/org/gnu/emacs/EmacsView.java (EmacsView)
(onCreateInputConnection): Signify that input connections are
now up to date.
* src/androidterm.c (struct
android_get_surrounding_text_context): New structure.
(android_get_surrounding_text, NATIVE_NAME):
* src/textconv.c (get_surrounding_text):
* src/textconv.h: New functions.
2023-06-07 11:03:56 +08:00
Po Lu
9a68041f2c Merge remote-tracking branch 'origin/master' into feature/android 2023-06-07 07:28:00 +08:00
Eli Zaretskii
ef8485ad05 ; * src/window.c (window_wants_header_line): Shut up bogus GCC warning. 2023-06-06 21:27:27 +03:00
Po Lu
34391d6675 Merge remote-tracking branch 'origin/master' into feature/android 2023-06-06 21:06:16 +08:00
Po Lu
229f0b8dd3 ; Fix coding style in just installed change
* src/window.c (window_wants_header_line): Fix whitespace.
2023-06-06 21:05:13 +08:00
Po Lu
1263531b9a Merge remote-tracking branch 'origin/master' into feature/android 2023-06-06 21:01:56 +08:00
Eli Zaretskii
05c2be28a3 ; Fix last change
* src/window.c (window_wants_header_line): Fix whitespace and
commentary in last change.  (Bug#63825)
2023-06-06 15:15:34 +03:00
Eshel Yaron
4f66cbbfe5 Avoid header line with some empty non-nil formats
Allow the value of 'header-line-format' to indicate that no header
line should be displayed when it trivially yields 'nil', even if it is
not plain 'nil'.  Previously, any non-nil 'header-line-format'
resulted in a (possibly empty) header line.  This change adds some
flexibility by also taking a non-nil value of 'header-line-format' to
mean that no header line should be displayed if it's a list whose
'car' is a symbol and either that symbol is ':eval' and the second
list element evaluates to 'nil', or the symbol's value as a variable
is 'nil' or void.
(Bug#63825)

* src/xdisp.c (safe_eval_inhibit_quit): New function.
* src/lisp.h (safe_eval_inhibit_quit): Declare it.
* src/window.c (null_header_line_format): New function.
(window_wants_header_line): Use it.

* doc/lispref/modes.texi (Header Line): Update to reflect new
conditions for displaying a window's header line.

* etc/NEWS: Announce updated treatment of 'header-line-format'.
2023-06-06 15:08:31 +03:00
Po Lu
5f09df3d6a Improve undo behavior on Android
* lisp/simple.el (undo-auto-amalgamate): Update doc string to
describe new amalgamating commands.
(analyze-text-conversion): Make this an amalgamating command by
default, unless a new line has been inserted.  Also, shorten the
undo boundary timer.
* src/textconv.c (really_commit_text)
(really_set_composing_text): Correctly report ephemeral
deletions.
(syms_of_textconv): Fix doc strings.
2023-06-06 10:06:10 +08:00
Po Lu
49ae645624 Merge remote-tracking branch 'origin/master' into feature/android 2023-06-06 07:53:41 +08:00
Eli Zaretskii
9a28600a97 Fix bug with point-adjustment after M-x COMMAND
* src/keyboard.c (command_loop_1): Preserve 'last_point_position'
across command execution, to avoid bugs in
'adjust_point_for_property' if the command invokes
'recursive-edit'.  Reported by Mats Lidell <matsl@gnu.org>.
2023-06-05 15:57:05 +03:00
Po Lu
c4a89851ed Clear batch edit state once a new input connection is established
* src/androidterm.c (android_handle_ime_event): Clear batch edit
state, in case the previous input method forgot to do so.
2023-06-05 11:34:18 +08:00
Po Lu
66783af554 Update Android port
* java/org/gnu/emacs/EmacsNative.java (EmacsNative): New
function clearInputFlags.
* java/org/gnu/emacs/EmacsView.java (onCreateInputConnection):
Stop reporting changes after a new input method connection is
established.
* src/androidterm.c (android_handle_ime_event): Implement that
change.
(JNICALL): New function.
2023-06-05 10:38:25 +08:00
Po Lu
835ac18a76 ; * src/keyboard.c: Fix build without window system 2023-06-04 20:11:44 +08:00
Po Lu
740af4668c Fix input method synchronization problems
* java/debug.sh (gdbserver_cmd, is_root): Prefer TCP again.
* java/org/gnu/emacs/EmacsNative.java (EmacsNative): New
function `queryAndSpin'.
* java/org/gnu/emacs/EmacsService.java (EmacsService)
(icBeginSynchronous, icEndSynchronous, viewGetSelection): New
synchronization functions.
(resetIC, updateCursorAnchorInfo): Call those instead.
* java/org/gnu/emacs/EmacsView.java (onCreateInputConnection):
Call viewGetSelection.
* src/android.c (JNICALL, android_answer_query_spin): New
functions.
2023-06-04 12:04:15 +08:00
Po Lu
c389df992a Merge remote-tracking branch 'origin/master' into feature/android 2023-06-04 08:33:30 +08:00
Eli Zaretskii
919f3a7aae Merge from origin/emacs-29
95ee5477e1 ; * src/lread.c (read0, skip_lazy_string): Fix commentary...
2023-06-03 05:47:29 -04:00
Po Lu
a4bf3ad958 Fix typos in Android port
* lisp/bindings.el (global-map): Bind cut, copy and paste.
* src/androidterm.c (JNICALL): Use key.
2023-06-03 15:08:05 +08:00
Po Lu
c308accc6d Behave correctly when IMEs commit or compose text with active mark
* src/textconv.c (really_commit_text)
(really_set_composing_text): Delete text between mark and point
if the mark is active.  Don't record changes if the text is
empty.
2023-06-03 11:25:01 +08:00
Po Lu
a696ed5c30 Update Android port
* src/androidterm.c (struct android_get_extracted_text_context):
New field `mark_active'.
(android_get_extracted_text): Set that field.
(struct android_extracted_text_class): New field `flags'.
(android_build_extracted_text): New argument `mark_active'.  Set
flags appropriately.
(NATIVE_NAME, android_update_selection): Likewise.
* src/textconv.c (get_extracted_text): New argument
`mark_active'.  Set it if the mark is active.
* src/textconv.h: Update prototypes.
2023-06-03 10:16:30 +08:00
Po Lu
189a91bfb6 Update Android port
* java/org/gnu/emacs/EmacsInputConnection.java
(EmacsInputConnection): Apply workarounds on Vivo devices as
well.
* src/android.c (sendKeyPress, sendKeyRelease): Clear counter.
* src/androidgui.h (struct android_key_event): New field
`counter'.
* src/androidterm.c (handle_one_android_event): Generate
barriers as appropriate.
(JNICALL): Set `counter'.
* src/frame.h (enum text_conversion_operation):
* src/textconv.c (detect_conversion_events)
(really_set_composing_text, handle_pending_conversion_events_1)
(handle_pending_conversion_events, textconv_barrier):
* src/textconv.h: Implement text conversion barriers and fix
various typos.
2023-06-02 13:31:40 +08:00
Po Lu
aed0a11147 Update Android port
* java/org/gnu/emacs/EmacsInputConnection.java
(EmacsInputConnection, performContextMenuAction): New function.
* java/org/gnu/emacs/EmacsNative.java (EmacsNative)
(performContextMenuAction): New function.
* src/android.c (android_get_gc_values): Implement more
efficiently.
* src/androidterm.c (android_handle_ime_event): Pass through
`update' argument to `finish_composing_text'.  Fix thinko.
* src/textconv.c (really_finish_composing_text)
(really_set_composing_text, really_set_composing_region)
(handle_pending_conversion_events_1, finish_composing_text): New
argument `update'.  Notify IME of conversion region changes if
set.
* src/textconv.h: Update structs and prototypes.
2023-06-01 15:16:02 +08:00
Po Lu
ce238de2b1 Correctly report start and end in extracted text
* src/androidterm.c (struct android_get_extracted_text_context):
New field `start_offset' and `end_offset'.  Delete `offset'.
(android_get_extracted_text, android_build_extracted_text):
Replace `offset' with new args `start_offset' and `end_offset'.
(NATIVE_NAME): Set `start_offset' and `end_offset'.
(android_update_selection): Likewise.
* src/textconv.c (get_extracted_text): Likewise.
* src/textconv.h: Update prototypes.
2023-06-01 08:29:48 +08:00
Po Lu
53f7cc2078 Fix build with Lisp_Object type checking
* configure.ac: Pass through `--enable-check-lisp-object-type'
on Android.
* src/alloc.c (android_make_lisp_symbol):
* src/android.c:
* src/androidfns.c (android_set_no_focus_on_map)
(android_set_no_accept_focus):
* src/androidfont.c (androidfont_match, androidfont_open_font):
* src/androidselect.c (Fandroid_get_clipboard)
(Fandroid_get_clipboard_targets):
* src/keyboard.c (make_lispy_event, syms_of_keyboard):
* src/sfntfont.c (sfnt_enum_font_1, sfntfont_list_1):
* src/textconv.c (really_set_point_and_mark): Fix Lisp_Object
and integer screw-ups.
2023-05-31 21:08:33 +08:00
Po Lu
69c4bbc0d6 Update Android port
* doc/emacs/input.texi (Other Input Devices, Touchscreens)
(On-Screen Keyboards):
* doc/lispref/commands.texi (Misc Events):
* src/android.c (android_faccessat): Improve word choices and
commentary.
* lisp/touch-screen.el (touch-screen-handle-scroll): Make
precision scrolling work better with horizontal movement.
2023-05-31 13:47:08 +08:00
Po Lu
b1f606f863 ; * src/android.c (android_copy_area): Pacify compiler warning. 2023-05-31 11:51:24 +08:00
Po Lu
57903519eb Update Android port
* java/debug.sh (is_root): Go back to using unix sockets; allow
adb to forward them correctly.
* java/org/gnu/emacs/EmacsInputConnection.java
(getExtractedText): Don't print text if NULL.
* java/org/gnu/emacs/EmacsService.java (EmacsService): New field
`imSyncInProgress'.
(updateIC): If an IM sync might be in progress, avoid deadlocks.
* java/org/gnu/emacs/EmacsView.java (onCreateInputConnection):
Set `imSyncInProgress' across synchronization point.
* src/android.c (android_check_query): Use __atomic_store_n.
(android_answer_query): New function.
(android_begin_query): Set `android_servicing_query' to 2.
Check once, and don't spin waiting for query to complete.
(android_end_query): Use __atomic_store_n.
(android_run_in_emacs_thread): Compare-and-exchange flag.  If
originally 1, fail.
* src/textconv.c (really_set_composing_text): Clear conversion
region if text is empty.
2023-05-31 10:13:04 +08:00
Po Lu
9e52188628 ; * src/android.c: Fix typos. 2023-05-29 18:19:52 +08:00
Po Lu
1088a8e8da Update Android port
* src/android.c (android_blit_copy):
(android_blit_xor): Fix typos.
2023-05-29 17:59:48 +08:00
Po Lu
787c947028 ; * src/android.c (android_blit_copy): Fix typos. 2023-05-29 17:48:25 +08:00
Po Lu
7fdde02f32 Work around more problems with Bitmaps
* java/org/gnu/emacs/EmacsNative.java (EmacsNative): New
function `blitRect'.
* java/org/gnu/emacs/EmacsSurfaceView.java (EmacsSurfaceView):
Use it on Android 8.x.
* src/android.c (blitRect): Implement new function.
2023-05-29 17:46:19 +08:00
Po Lu
9a35354593 Update Android port
* src/android.c (android_neon_mask_line): Fix iteration
over remainder.
(android_blit_copy): Be more paranoid.
2023-05-29 16:33:20 +08:00
Po Lu
00671b1843 Implement android_copy_area in C
* java/org/gnu/emacs/EmacsCopyArea.java: Remove file.
* java/org/gnu/emacs/EmacsService.java (EmacsService, copyArea):
Delete function.
* src/android.c (struct android_emacs_service)
(android_init_emacs_service): Remove `copy_area'.
(android_create_gc, android_change_gc, android_get_gc_values):
Record new GC values.
(android_neon_mask_line): New function.
(android_blit_copy, android_blit_xor): New functions.
(android_copy_area): Implement in C.
(android_lock_bitmap): Accept drawables instead of windows.
* src/android.h: Adjust prototype for `android_lock_bitmap'.
* src/androidgui.h (struct android_gc): Record last known GC
values.
2023-05-29 15:44:14 +08:00
Po Lu
cdca0fddcc Merge remote-tracking branch 'origin/master' into feature/android 2023-05-27 09:49:49 +08:00
Eli Zaretskii
95ee5477e1 ; * src/lread.c (read0, skip_lazy_string): Fix commentary again. 2023-05-26 15:11:35 +03:00
Eli Zaretskii
e78318ad2e Merge from origin/emacs-29
aa5158630e Use 'font-lock-extend-region-functions' in python-mode
b7b82ecb2b Fix python-info-docstring-p
f42de74ebe ; * src/lread.c (read0, skip_lazy_string): Fix commentary...
b6b384023a Fix cancellation of Wdired
916c2a19bd Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
f535c0e49d Handle #@00 in new reader in a compatible way (bug#63722)
40a758f5ce ; Minor fixes in documentation of recently-changed VC com...
c0d7447e9d ; * etc/NEWS: Describe the Cairo XCB option.  (Bug#63589)
4205268675 Don't mark selection request events
9f5249d5c8 Disable cairo-xcb support by default
e5f42706ce * lisp/progmodes/project.el: Move :safe from defcustom to...
3afe4a42e9 * lisp/vc/vc-annotate.el (vc-annotate-mode-menu): Quote v...
b62a2b08b8 Add vc-create/switch/print-branch to menu and update docu...
d292d28229 Fix rare crashes in 'try_window_reusing_current_matrix'
709d902002 Make last Tramp change less invasive
a72a1f24fc ; Fix last change.
5c6517a115 ; * lisp/menu-bar.el (popup-menu): Doc fix.
212884f2bf ; Fix last change.
1b9812af80 ; * etc/PROBLEMS: Document problem with GnuPG 2.4.1.  (Bu...
765edc204d ; Support SQLite3 extensions on macOS
5aadb87d6f Fix 'use-dialog-box-p' and friends

# Conflicts:
#	etc/NEWS
2023-05-26 07:04:03 -04:00
Eli Zaretskii
eacee3e536 Merge from origin/emacs-29
6f6071c526 Avoid duplicate load-path entry when generating package a...
117b29c6f6 ; Improve documentation of Isearch command properties
a347b26cba Disable loading SQLite3 extensions when SQLite3 version i...
fe22bf503f ; * lisp/progmodes/project.el (project-switch-use-entire-...
64dbbde3b7 Fix visiting HTML files encoded in iso-2022 variants
5c95239aca ; Fix markup of some treesit vars in Elisp manual.
6ad041939b Support 'isearch-allow-scroll' in 'pixel-scroll-precision...
ecccdc07a0 shr: allow moving between adjacent anchors
504ef25ef3 ; * etc/NEWS: Fix typos.
d6fb868cdd Fix multihop file name expansion in Tramp
dd3e4e14fd Remove obsolete information from Gnus manual
2a5c946f87 Preserve mark in comint-history-isearch
6b60c8142e Fix systemd unit completion for old versions of systemd
8c56557cd9 Fix Skeletons menu-bar menu in Python modes
58eb38cfb4 ; * etc/NEWS: missing definite article
cf40362869 ; * etc/NEWS: PGTK cannot switch to -new automatically (b...
ead3a2abbf Fix loading SQLite extensions
a6bddd1765 ; * etc/NEWS: Fix typos.
f49fe936ab * etc/NEWS: Note dotimes loop variable scoping change (bu...
cec9333dc5 Fix c-ts-mode--top-level-declarator
f571e8f1bb Improve c-ts-mode font-lock for function names (bug#63390)
42a28ffdc2 * lisp/tab-bar.el: Don't use 'minibuffer-selected-window'...
8e61d23f71 Split windows horizontally in places that use split to cr...
459d08c7fe Fix tree-sitter test (bug#63481)
3bc5efb87e ; * lisp/emacs-lisp/benchmark.el (benchmark-progn): Fix d...

# Conflicts:
#	etc/NEWS
2023-05-26 07:03:07 -04:00
Eli Zaretskii
f42de74ebe ; * src/lread.c (read0, skip_lazy_string): Fix commentary wording. 2023-05-26 12:30:40 +03:00
Mattias Engdegård
f535c0e49d Handle #@00 in new reader in a compatible way (bug#63722)
This was a regression from Emacs 28.

* src/lread.c (skip_lazy_string, read0): Make #@00 read as nil, which
is a quirk from the old reader that we preserve for compatibility.
* test/src/lread-tests.el (lread-skip-to-eof): Verify it.

Reported by Richard Newton.
2023-05-26 10:22:51 +02:00
Po Lu
4205268675 Don't mark selection request events
* src/pgtkterm.c (mark_pgtkterm): Prevent crash by not marking
selection request events, which don't have Lisp_Object members.
2023-05-26 08:43:18 +08:00
Eli Zaretskii
d292d28229 Fix rare crashes in 'try_window_reusing_current_matrix'
* src/xdisp.c (try_window_reusing_current_matrix): Make sure we
never use a mode-line glyph row to start displaying scrolled-in
rows.  (Bug#63711)
2023-05-25 20:50:46 +03:00
Po Lu
78606a83f7 Update Android port
* src/sfnt.c (sfnt_decompose_compound_glyph): Allow decomposing
up to 16 nested components.
(CALL, LOOPCALL): Correctly error if no fdef storage exists.
(sfnt_interpret_run): New label `next_instruction', for CALL.
(sfnt_interpret_compound_glyph_1): Allow decomposing up to 16
nested components.  Prevent crash if there are no end points or
points.
(sfnt_read_cvar_table): Prevent assigning uninitialized values.
(sfnt_vary_simple_glyph): Update commentary.
2023-05-24 10:53:41 +08:00
Eli Zaretskii
765edc204d ; Support SQLite3 extensions on macOS
* src/sqlite.c (Fsqlite_load_extension): Support *.dylib
extensions.  (Bug#63653)
2023-05-23 17:53:07 +03:00
Eli Zaretskii
5aadb87d6f Fix 'use-dialog-box-p' and friends
* lisp/subr.el (use-dialog-box-p): Use dialog boxes also when
invoked from some window-system gesture.  (Bug#63655)
(y-or-n-p): Fix the description in the doc string of conditions
under which a dialog box will be used.

* src/fns.c (Fyes_or_no_p): Use the same condition for dialog
boxes as in 'use-dialog-box-p'.  Fix the description in the doc
string of conditions under which a dialog box will be used.

* doc/lispref/minibuf.texi (Multiple Queries, Yes-or-No Queries):
Fix the description of conditions under which a dialog box will be
used.
2023-05-23 17:44:23 +03:00