]> git.eshelyaron.com Git - emacs.git/log
emacs.git
23 months agoFix small bugs
Po Lu [Wed, 15 Feb 2023 05:38:53 +0000 (13:38 +0800)]
Fix small bugs

* src/androidterm.c (android_handle_ime_event): Pacify compiler
warnings.
* src/textconv.c (really_set_composing_text)
(handle_pending_conversion_events, get_extracted_text): Fix
reentrancy problems and uses of uninitialized values.

23 months agoMerge remote-tracking branch 'origin/master' into feature/android
Po Lu [Wed, 15 Feb 2023 04:24:22 +0000 (12:24 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android

23 months agoUpdate Android port
Po Lu [Wed, 15 Feb 2023 04:23:03 +0000 (12:23 +0800)]
Update Android port

* configure.ac (HAVE_TEXT_CONVERSION): Define on Android.
* doc/emacs/input.texi (On-Screen Keyboards): Document ``text
conversion'' slightly.
* doc/lispref/commands.texi (Misc Events): Document new
`text-conversion' event.
* java/org/gnu/emacs/EmacsContextMenu.java (display): Use
`syncRunnable'.
* java/org/gnu/emacs/EmacsDialog.java (display): Likewise.
* java/org/gnu/emacs/EmacsEditable.java: Delete file.
* java/org/gnu/emacs/EmacsInputConnection.java
(EmacsInputConnection): Reimplement from scratch.
* java/org/gnu/emacs/EmacsNative.java (EmacsNative): Add new
functions.
* java/org/gnu/emacs/EmacsService.java (EmacsService, getEmacsView)
(getLocationOnScreen, sync, getClipboardManager, restartEmacs):
Use syncRunnable.
(syncRunnable): New function.
(updateIC, resetIC): New functions.

* java/org/gnu/emacs/EmacsView.java (EmacsView): New field
`inputConnection' and `icMode'.
(onCreateInputConnection): Update accordingly.
(setICMode, getICMode): New functions.

* lisp/bindings.el (global-map): Ignore text conversion events.
* src/alloc.c (mark_frame): Mark text conversion data.
* src/android.c (struct android_emacs_service): New fields
`update_ic' and `reset_ic'.
(event_serial): Export.
(android_query_sem): New function.
(android_init_events): Initialize new semaphore.
(android_write_event): Export.
(android_select): Check for UI thread code.
(setEmacsParams, android_init_emacs_service): Initialize new
methods.
(android_check_query, android_begin_query, android_end_query)
(android_run_in_emacs_thread):
(android_update_ic, android_reset_ic): New functions for
managing synchronous queries from one thread to another.

* src/android.h: Export new functions.
* src/androidgui.h (enum android_event_type): Add input method
events.
(enum android_ime_operation, struct android_ime_event)
(union android_event, enum android_ic_mode): New structs and
enums.

* src/androidterm.c (android_window_to_frame): Allow DPYINFO to
be NULL.
(android_decode_utf16, android_handle_ime_event)
(handle_one_android_event, android_sync_edit)
(android_copy_java_string, beginBatchEdit, endBatchEdit)
(commitCompletion, deleteSurroundingText, finishComposingText)
(getSelectedtext, getTextAfterCursor, getTextBeforeCursor)
(setComposingText, setComposingRegion, setSelection, getSelection)
(performEditorAction, getExtractedText): New functions.
(struct android_conversion_query_context):
(android_perform_conversion_query):
(android_text_to_string):
(struct android_get_selection_context):
(android_get_selection):
(struct android_get_extracted_text_context):
(android_get_extracted_text):
(struct android_extracted_text_request_class):
(struct android_extracted_text_class):
(android_update_selection):
(android_reset_conversion):
(android_set_point):
(android_compose_region_changed):
(android_notify_conversion):
(text_conversion_interface): New functions and structures.
(android_term_init): Initialize text conversion.

* src/coding.c (syms_of_coding): Define Qutf_16le on Android.
* src/frame.c (make_frame): Clear conversion data.
(delete_frame): Reset conversion state.

* src/frame.h (enum text_conversion_operation)
(struct text_conversion_action, struct text_conversion_state)
(GCALIGNED_STRUCT): Update structures.
* src/keyboard.c (read_char, readable_events, kbd_buffer_get_event)
(syms_of_keyboard): Handle text conversion events.
* src/lisp.h:
* src/process.c: Fix includes.

* src/textconv.c (enum textconv_batch_edit_flags, textconv_query)
(reset_frame_state, detect_conversion_events)
(restore_selected_window, really_commit_text)
(really_finish_composing_text, really_set_composing_text)
(really_set_composing_region, really_delete_surrounding_text)
(really_set_point, complete_edit)
(handle_pending_conversion_events_1)
(handle_pending_conversion_events, start_batch_edit)
(end_batch_edit, commit_text, finish_composing_text)
(set_composing_text, set_composing_region, textconv_set_point)
(delete_surrounding_text, get_extracted_text)
(report_selected_window_change, report_point_change)
(register_texconv_interface): New functions.

* src/textconv.h (struct textconv_interface)
(TEXTCONV_SKIP_CONVERSION_REGION): Update prototype.
* src/xdisp.c (mark_window_display_accurate_1):
* src/xfns.c (xic_string_conversion_callback):
* src/xterm.c (init_xterm): Adjust accordingly.

23 months ago; Auto-commit of loaddefs files.
Stefan Kangas [Wed, 15 Feb 2023 04:08:07 +0000 (05:08 +0100)]
; Auto-commit of loaddefs files.

23 months agoRewrite emoji's usage of transient
Jonas Bernoulli [Wed, 1 Feb 2023 19:25:16 +0000 (20:25 +0100)]
Rewrite emoji's usage of transient

* lisp/international/emoji.el:
(emoji--done-derived): Remove variable.
(emoji-insert, emoji-recent, emoji-search, emoji-list-select):
Define using 'transient-define-prefix'.  Use a base suffix group
whose value is calculated dynamically.
(emoji--setup-prefix, emoji--setup-suffixes, emoji-group-description):
New functions used to dynamically calculate suffixes.
(emoji--narrow): New suffix class, used to pass state to recursive,
narrowed invocations of the prefix command the user initially invoked.
(emoji-insert-glyph): New suffix command that is used for all glyphs
that have no derivations.  Previously a separate command was define
for each glyph.
(emoji--fontify-glyph): Replace 'inhibit-derived' argument with
'done-derived' argument.
(emoji--define-transient): Remove function.
(emoji--layout): New function, replacing 'emoji--define-transient'.
Return the suffixes in 'define-transient-prefix' format.  Unlike
the replaced function, do not define any new commands, instead use
either the current prefix command or 'emoji-insert-glyph'.
(emoji--recent-transient): Remove function.
(emoji--char-sequence): New function.
(emoji--add-recent): Remove all text properties from glyph.
(emoji--choose-emoji): Remove function.

23 months agoTramp cleanup
Michael Albinus [Tue, 14 Feb 2023 17:51:44 +0000 (18:51 +0100)]
Tramp cleanup

* lisp/net/tramp.el:
* lisp/net/tramp-integration.el:
* lisp/net/tramp-sh.el: Use `string-join'.

* test/lisp/net/tramp-tests.el: Use `string-join'.

23 months agoFix recent LAP optimiser error
Mattias Engdegård [Tue, 14 Feb 2023 16:06:49 +0000 (17:06 +0100)]
Fix recent LAP optimiser error

* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode):
Fix a flaw in the

  dup (varset|varbind|stack-set) discard -> (varset|varbind|stack-set)

rule: don't match stack-set(1) which is dealt with elsewhere, and
generalise to discard(N).

23 months ago; Fix typo in comment in mule-conf change
Robert Pluim [Tue, 14 Feb 2023 13:18:38 +0000 (14:18 +0100)]
; Fix typo in comment in mule-conf change

23 months ago* src/comp.c (Fcomp__compile_ctxt_to_file): Don't create output file twice
Andrea Corallo [Tue, 14 Feb 2023 11:34:48 +0000 (12:34 +0100)]
* src/comp.c (Fcomp__compile_ctxt_to_file): Don't create output file twice

23 months agoFix insert-file-contents on /proc files
Paul Eggert [Mon, 13 Feb 2023 20:32:11 +0000 (12:32 -0800)]
Fix insert-file-contents on /proc files

This should fix Bug#9800 (2011-10-19).
* src/fileio.c (Finsert_file_contents):
Do not trust st_size even on regular files, as the file might
be a Linux /proc file, or it might be growing.
Instead, always read to EOF when END is nil.

23 months agoFix src/fileio.c comment
Paul Eggert [Mon, 13 Feb 2023 16:53:52 +0000 (08:53 -0800)]
Fix src/fileio.c comment

* src/fileio.c (Finsert_file_contents): Fix comment.
Since the code relies on st_size, it’s limited to
regular files, not to seekable files.

23 months agoDon’t scan text twice to guess coding system
Paul Eggert [Mon, 13 Feb 2023 16:51:45 +0000 (08:51 -0800)]
Don’t scan text twice to guess coding system

* src/fileio.c (Finsert_file_contents): If the file shrank
below 4 KiB, don’t read duplicate text into READ_BUF.
This also removes a use of SEEK_END, which Linux /proc
file systems do not support (not that we should get here
with /proc).

23 months agoImprove insert-file-contents on non-regular files
Paul Eggert [Mon, 13 Feb 2023 01:52:46 +0000 (17:52 -0800)]
Improve insert-file-contents on non-regular files

* src/fileio.c (Finsert_file_contents):
If the file is not a regular file, check REPLACE and VISIT
before doing further syscalls that won’t matter in this case.

23 months agoImprove insert-file-contents checking
Paul Eggert [Mon, 13 Feb 2023 01:30:46 +0000 (17:30 -0800)]
Improve insert-file-contents checking

* src/fileio.c (Finsert_file_contents): Check BEG, END,
REPLACE for validity before launching into opening files etc.

23 months ago; * etc/NEWS: Move treesit-related functions and variables to Lisp Changes.
Juri Linkov [Mon, 13 Feb 2023 17:53:05 +0000 (19:53 +0200)]
; * etc/NEWS: Move treesit-related functions and variables to Lisp Changes.

23 months ago; Fix previous mule-conf change
Robert Pluim [Mon, 13 Feb 2023 17:40:55 +0000 (18:40 +0100)]
; Fix previous mule-conf change

23 months agoLAP optimiser: more stack reduction hoisting
Mattias Engdegård [Sun, 12 Feb 2023 11:33:27 +0000 (12:33 +0100)]
LAP optimiser: more stack reduction hoisting

Hoisting stack reduction ops allows them to coalesce and/or cancel out
pushing ops, and for useful operations to sink and combine, such as
not + goto-if-[not-]nil.

* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode):
Add the rule

  UNARY discardN-preserve-tos --> discardN-preserve-tos UNARY

where UNARY pops and pushes one value.

Generalise the rule

  const discardN-preserve-tos --> discardN const

to any 0-ary op, not just const: varref, point, etc.

23 months agoAdd new user option password-colon-equivalents
Michael Albinus [Mon, 13 Feb 2023 14:51:48 +0000 (15:51 +0100)]
Add new user option password-colon-equivalents

* lisp/international/mule-conf.el (password-colon-equivalents):
New defcustom.

* lisp/comint.el (comint-password-prompt-regexp):
* lisp/eshell/esh-mode.el (eshell-password-prompt-regexp): Use it.

* lisp/net/tramp-compat.el (tramp-compat-password-colon-equivalents):
New variable.

* lisp/net/tramp.el (tramp-password-prompt-regexp): Use it.

23 months agoMerge from origin/emacs-29
Stefan Kangas [Mon, 13 Feb 2023 05:30:12 +0000 (06:30 +0100)]
Merge from origin/emacs-29

f2114e8d89f Fix indentation for closing bracket in c-ts-mode (bug#61398)
f49caaa8925 ; * src/pdumper.c (dump_buffer): Update hash.
fe2ea5ddd8d Update to Org 9.6.1-31-gaf1bb1

23 months ago; Merge from origin/emacs-29
Stefan Kangas [Mon, 13 Feb 2023 05:30:12 +0000 (06:30 +0100)]
; Merge from origin/emacs-29

The following commit was skipped:

8280d721d7c * src/.gdbinit (nextcons): Amend $.u.cdr to $.u.s.u.cdr (...

23 months agoMerge from origin/emacs-29
Stefan Kangas [Mon, 13 Feb 2023 05:30:12 +0000 (06:30 +0100)]
Merge from origin/emacs-29

eb2b0931cf1 Add lambda_expression to c-ts-common-indent-type-regexp-a...
2da05876edb ; Use the right name when specifying VC packages
d4fc7012978 Tolerate missing elpa-packages.eld files
8bc1b7d0b27 Avoid warning about 'load-path' in non-interactive sessions
3d17aee13d9 ; Fix installation of dependencies for VC packages
86ca7df6a34 ; Mention Hunspell private-dictionary misfeature in doc s...
7287b7b53a1 Support webkit2gtk-4.1
048a2dabfc4 ; Fix typo

23 months agoFix indentation for closing bracket in c-ts-mode (bug#61398)
Yuan Fu [Mon, 13 Feb 2023 03:49:47 +0000 (19:49 -0800)]
Fix indentation for closing bracket in c-ts-mode (bug#61398)

* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--indent-styles): Move the rule earlier.
(c-ts-base-mode): Add move block type.
* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New tests.

23 months ago; * src/pdumper.c (dump_buffer): Update hash.
Basil L. Contovounesios [Sun, 12 Feb 2023 21:07:45 +0000 (21:07 +0000)]
; * src/pdumper.c (dump_buffer): Update hash.

This follows commit 8f3091defb3 of 2023-02-12
"; Fix typo in buffer.h".

23 months agoUpdate to Org 9.6.1-31-gaf1bb1
Kyle Meyer [Sun, 12 Feb 2023 20:43:07 +0000 (15:43 -0500)]
Update to Org 9.6.1-31-gaf1bb1

23 months ago* src/.gdbinit (nextcons): Amend $.u.cdr to $.u.s.u.cdr (bug#61453).
Alan Mackenzie [Sun, 12 Feb 2023 19:06:50 +0000 (19:06 +0000)]
* src/.gdbinit (nextcons): Amend $.u.cdr to $.u.s.u.cdr (bug#61453).

(cherry picked from commit dde023b63ab82c38d33815409de5552f5bf349d1)

23 months agoSupport Tramp multi-hop completion
Michael Albinus [Sun, 12 Feb 2023 19:22:10 +0000 (20:22 +0100)]
Support Tramp multi-hop completion

* lisp/net/tramp.el (tramp-completion-handle-expand-file-name)
(tramp-completion-handle-file-exists-p)
(tramp-completion-handle-file-name-directory): Support multi-hop
completion.

* test/lisp/net/tramp-tests.el
(tramp-test26-interactive-file-name-completion): Fix test.

23 months ago* src/.gdbinit (nextcons): Amend $.u.cdr to $.u.s.u.cdr
Alan Mackenzie [Sun, 12 Feb 2023 19:06:50 +0000 (19:06 +0000)]
* src/.gdbinit (nextcons): Amend $.u.cdr to $.u.s.u.cdr

23 months agoAdd lambda_expression to c-ts-common-indent-type-regexp-alist
Theodor Thornhill [Sun, 12 Feb 2023 17:57:40 +0000 (18:57 +0100)]
Add lambda_expression to c-ts-common-indent-type-regexp-alist

* lisp/progmodes/java-ts-mode.el (java-ts-mode): Tweak regexp.

23 months ago; Use the right name when specifying VC packages
Philip Kaludercic [Sun, 12 Feb 2023 13:29:26 +0000 (14:29 +0100)]
; Use the right name when specifying VC packages

* lisp/emacs-lisp/package-vc.el
(package-vc-install-selected-packages): Generate dummy package
descriptors in here, if necessary.
(package-vc--unpack): Remove dummy-descriptor generation.

23 months agoMerge remote-tracking branch 'origin/master' into feature/android
Po Lu [Sun, 12 Feb 2023 12:40:29 +0000 (20:40 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android

23 months ago; * src/textconv.c (textconv_query): Fix build on non-GCC compilers.
Po Lu [Sun, 12 Feb 2023 12:39:23 +0000 (20:39 +0800)]
; * src/textconv.c (textconv_query): Fix build on non-GCC compilers.

23 months agoMerge remote-tracking branch 'origin/master' into feature/android
Po Lu [Sun, 12 Feb 2023 12:32:31 +0000 (20:32 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android

23 months agoUpdate Android port
Po Lu [Sun, 12 Feb 2023 12:32:25 +0000 (20:32 +0800)]
Update Android port

* doc/emacs/android.texi (Android Environment): Document
notifications permission.
* java/org/gnu/emacs/EmacsEditable.java (EmacsEditable):
* java/org/gnu/emacs/EmacsInputConnection.java
(EmacsInputConnection): New files.
* java/org/gnu/emacs/EmacsNative.java (EmacsNative): Load
library dependencies in a less verbose fashion.
* java/org/gnu/emacs/EmacsView.java (EmacsView): Make imManager
public.
(onCreateInputConnection): Set InputType to TYPE_NULL for now.
* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow, onKeyDown)
(onKeyUp, getEventUnicodeChar): Correctly handle key events with
strings.
* lisp/term/android-win.el (android-clear-preedit-text)
(android-preedit-text): New special event handlers.
* src/android.c (struct android_emacs_window): Add function
lookup_string.
(android_init_emacs_window): Adjust accordingly.
(android_wc_lookup_string): New function.
* src/androidgui.h (struct android_key_event): Improve
commentary.
(enum android_lookup_status): New enum.
* src/androidterm.c (handle_one_android_event): Synchronize IM
lookup code with X.
* src/coding.c (from_unicode_buffer): Implement on Android.
* src/coding.h:
* src/sfnt.c: Fix commentary.

23 months agoTolerate missing elpa-packages.eld files
Philip Kaludercic [Sun, 12 Feb 2023 12:25:54 +0000 (13:25 +0100)]
Tolerate missing elpa-packages.eld files

* lisp/emacs-lisp/package-vc.el
(package-vc--download-and-read-archives): Replace
'condition-case-unless-debug' with a regular 'condition-case'.

It appears a few people using third-party archives that don't serve
package specifications have been having issues with package-vc, when
toggle-on-error is enabled.  In their case, package-vc would raise an
error in its first invocation, but it would go on working normally
afterwards.  As this behaviour is confusing and the user can't do much
about a missing elpa-packages.eld to begin with, we satisfy ourselves
with printing out a message and continuing on.

23 months agoAvoid warning about 'load-path' in non-interactive sessions
Eli Zaretskii [Sun, 12 Feb 2023 12:20:48 +0000 (14:20 +0200)]
Avoid warning about 'load-path' in non-interactive sessions

* lisp/startup.el (command-line): Emit the warning about
'user-emacs-directory' in 'load-path' only in interactive
sessions.  (Bug#61014)

23 months ago; Fix installation of dependencies for VC packages
Philip Kaludercic [Sun, 12 Feb 2023 12:10:04 +0000 (13:10 +0100)]
; Fix installation of dependencies for VC packages

* lisp/emacs-lisp/package-vc.el (package-vc-install-dependencies):
Maintain a list of package-desc objects instead of package names to
install.

23 months ago; Mention Hunspell private-dictionary misfeature in doc strings
Eli Zaretskii [Sun, 12 Feb 2023 12:05:44 +0000 (14:05 +0200)]
; Mention Hunspell private-dictionary misfeature in doc strings

* lisp/textmodes/ispell.el (ispell-personal-dictionary)
(ispell-local-pdict): Mention Hunspell misfeatures in doc
strings.  (Bug#61190)

23 months agoCheck in new files
Po Lu [Sun, 12 Feb 2023 11:56:11 +0000 (19:56 +0800)]
Check in new files

* src/textconv.c (copy_buffer):
(textconv_query):
(report_selected_window_change):
(register_texconv_interface):
* src/textconv.h (struct textconv_interface):
(enum textconv_caret_direction):
(enum textconv_operation):
(struct textconv_conversion_text):
(struct textconv_callback_struct): New files.

23 months agoSupport input method ``text conversion'' on X Windows
Po Lu [Sun, 12 Feb 2023 11:55:28 +0000 (19:55 +0800)]
Support input method ``text conversion'' on X Windows

* configure.ac (HAVE_TEXT_CONVERSION): Define on X.
* etc/NEWS: Announce new change.
* src/emacs.c (main): Always call init_xterm.
* src/frame.c (do_switch_frame): Use `fset_selected_window'.
* src/insdel.c (struct safe_del_range_context): New structure.
(safe_del_range_1, safe_del_range_2, safe_del_range): New
functions.
* src/lisp.h: Export new functions.
* src/window.c (run_window_change_functions): Report selected
window and buffer changes so that the input method can be reset.
* src/xfns.c (XICCallback, Xxic_preedit_caret_callback)
(Xxic_preedit_done_callback, Xxic_preedit_start_callback)
(Xxic_preedit_draw_callback): Fix coding style.
(Xxic_string_conversion_callback): New callback.
(create_frame_xic): Register string conversion callback.
(struct x_xim_text_conversion_data): New field `size'.
(x_encode_xim_text_1, x_encode_xim_text): New functions.
(xic_string_conversion_callback): New function.
* src/xterm.c (x_reset_conversion): New function.
(text_conversion_interface): New variable.
(init_xterm): Initialize text conversion interface.

23 months agoSupport webkit2gtk-4.1
Ulrich Müller [Thu, 9 Feb 2023 09:58:48 +0000 (10:58 +0100)]
Support webkit2gtk-4.1

* configure.ac: Check for webkit2gtk API version 4.1 first, then
fall back to 4.0.

23 months ago; Fix typo
Stefan Kangas [Sun, 12 Feb 2023 06:47:09 +0000 (07:47 +0100)]
; Fix typo

23 months agoMerge from origin/emacs-29
Stefan Kangas [Sun, 12 Feb 2023 05:30:10 +0000 (06:30 +0100)]
Merge from origin/emacs-29

8f3091defb3 ; Fix typo in buffer.h

23 months ago; Fix typo in buffer.h
Daniel Martín [Sun, 12 Feb 2023 00:32:20 +0000 (01:32 +0100)]
; Fix typo in buffer.h

23 months agoMerge from origin/emacs-29
Stefan Kangas [Sun, 12 Feb 2023 02:27:46 +0000 (03:27 +0100)]
Merge from origin/emacs-29

4da398d8b57 ; Fix typos
074008ee2d2 ; Fix doc strings in lisp/image/ directory
2d1e43436da ; Improve documentation of hash functions.
900f7e07275 ; Remove extraneous local variables from image-dired-*.el...
4f053afe8e7 bug-reference: prevent match-data clobbering (bug#61395)
10af9fbcad1 ; * admin/notes/tree-sitter/starter-guide: Typos.
9ac242ce93d ; Fix recent changes in treesit docs
f5789aefc2e Rename LIMIT to DEPTH in tree-sitter functions (bug#61231)
b39821fdcef ; Fix incorrect function name in treesit manual
51901736965 Add 'live' property to treesit-node-check (bug#61235)
56960a6558b Update to Transient v0.3.7-205-gb8ad0da
68a6b364d1c Fix 'rmail-summary-output'
67c6ec25590 lisp-mode: add docstring recognition for more common lisp...
417a8ed8b05 ; Improve discoverability of empty file names handling
e47cf6ca15a Update to Transient v0.3.7-204-gecff8c2
b04cce02ff4 Fix Scala entry in Eglot's DB of LSP servers

# Conflicts:
# lisp/transient.el

23 months ago; Fix typos
Stefan Kangas [Sun, 12 Feb 2023 02:23:13 +0000 (03:23 +0100)]
; Fix typos

23 months agoMake sure core Eshell modules are loaded
Jim Porter [Sat, 11 Feb 2023 20:37:32 +0000 (12:37 -0800)]
Make sure core Eshell modules are loaded

Previously, if you removed all (or most) extension modules from
Eshell, it failed to load esh-var.el, meaning that you couldn't use
variable expansions.  To avoid this issue, we now explicitly load the
core modules in esh-mode.el.

* lisp/eshell/esh-mode.el: Explicitly require core Eshell modules.

23 months agoSupport Tramp user name completion
Michael Albinus [Sat, 11 Feb 2023 17:11:56 +0000 (18:11 +0100)]
Support Tramp user name completion

* lisp/net/tramp.el (tramp-build-completion-file-name-regexp)
(tramp-completion-handle-expand-file-name)
(tramp-completion-handle-file-name-directory): Support user name
completion.

* test/lisp/net/tramp-tests.el
(tramp-test26-interactive-file-name-completion): Fix test.

23 months ago; Fix doc strings in lisp/image/ directory
Eli Zaretskii [Sat, 11 Feb 2023 14:49:54 +0000 (16:49 +0200)]
; Fix doc strings in lisp/image/ directory

* lisp/image/wallpaper.el (wallpaper-setter)
(wallpaper--find-command, wallpaper--x-monitor-name)
(wallpaper--format-arg):
* lisp/image/image-dired-util.el
(image-dired-associated-dired-buffer)
(image-dired--with-dired-buffer):
* lisp/image/image-dired-tags.el (image-dired--with-db-file)
(image-dired-remove-tag, image-dired-list-tags)
(image-dired-tag-files, image-dired-write-comments)
(image-dired-update-property):
* lisp/image/image-dired-external.el (image-dired-cmd-pngnq-options)
(image-dired-cmd-pngcrush-program)
(image-dired-cmd-pngcrush-options)
(image-dired-cmd-optipng-options)
(image-dired-cmd-create-standard-thumbnail-options)
(image-dired-cmd-rotate-original-program)
(image-dired-cmd-rotate-original-options)
(image-dired-cmd-write-exif-data-options, image-dired-queue)
(image-dired-queue-active-limit, image-dired-pngnq-thumb)
(image-dired-pngcrush-thumb, image-dired-optipng-thumb)
(image-dired-thumb-queue-run, image-dired-get-exif-file-name)
(image-dired-thumbnail-set-image-description):
* lisp/image/image-dired.el (image-dired-thumbnail-storage)
(image-dired-tags-db-file)
(image-dired-rotate-original-ask-before-overwrite)
(image-dired-line-up-method, image-dired-track-movement)
(image-dired-display-properties-format)
(image-dired-external-viewer)
(image-dired-show-all-from-dir-max-files)
(image-dired-insert-image)
(image-dired-dired-with-window-configuration)
(image-dired-restore-window-configuration)
(image-dired-track-original-file)
(image-dired-toggle-movement-tracking)
(image-dired-format-properties-string)
(image-dired--on-file-in-dired-buffer)
(image-dired-thumbnail-display-external)
(image-dired-display-image, image-dired-copy-filename-as-kill):
* lisp/image/image-dired-dired.el
(image-dired-dired-toggle-marked-thumbs)
(image-dired-dired-after-readin-hook)
(image-dired-next-line-and-display)
(image-dired-previous-line-and-display)
(image-dired-mark-and-display-next, image-dired-track-thumbnail)
(image-dired-dired-next-line, image-dired-dired-previous-line)
(image-dired-dired-display-external)
(image-dired-copy-with-exif-file-name)
(image-dired-mark-tagged-files)
(image-dired-dired-display-properties):
* lisp/image/image-crop.el (image-crop-exif-rotate)
(image-crop-resize-command, image-crop-cut-command)
(image-crop-crop-command, image-crop-rotate-command)
(image-crop-buffer-text-function, image-cut-color):
* lisp/image/image-converter.el (image-converter)
(image-convert-to-format, image-converter-regexp)
(image-converter--converters, image-convert-p, image-convert)
(image-converter--value, image-converter--probe)
(image-converter--find-converter, image-converter--convert)
(image-converter-add-handler):
* lisp/image/exif.el (exif-parse-buffer, exif-field)
(exif-orientation, exif--direct-ascii-value)
(exif--process-value, exif--read-chunk, exif--read-number-be)
(exif--read-number-le, exif--read-number): Fix doc strings.

23 months agoLAP peephole optimiser improvementsa
Mattias Engdegård [Fri, 10 Feb 2023 13:38:26 +0000 (14:38 +0100)]
LAP peephole optimiser improvementsa

* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode):
Make the improvements:

- Add the rule

    stack-ref(X) discardN-preserve-tos(Y)
    --> discard(Y) stack-ref(X-Y),                X≥Y
        discard(X) discardN-preserve-tos(Y-X-1),  X<Y

  with the usual equivalences:

    stack-set(1) = discardN-preserve-tos(1)
    stack-ref(0) = dup
    discard(0) = discardN-preserve-tos(0) = no-op

  This rule hoists stack reduction to where it is more likely to be
  exploited further, may reduce the op size through smaller
  immediates, and sometimes removes either or both operations
  outright.

  The rule is inhibited by an immediately following `return` op
  because other rules will produce better code in that case.

- Add the rule

    (discardN-preserve-tos|dup) OP return --> OP return

  where OP is a unary operation such as `not` or `car`.

- Generalise a previous rule to

    NOEFFECT PRODUCER return  -->  PRODUCER return

  where PRODUCER is now any op that pushes a value without looking at
  the stack: const, varref, point etc.

23 months agoMake edebug see unused variables when lexical-binding is non-nil
Alan Mackenzie [Sat, 11 Feb 2023 10:45:31 +0000 (10:45 +0000)]
Make edebug see unused variables when lexical-binding is non-nil

This fixes bug #59213.

* lisp/emacs-lisp/cconv.el (cconv-dont-trim-unused-variables): New variable.
(cconv-fv, cconv-make-interpreted-closure): Add/amend doc strings.
(cconv-make-interpreted-closure): Test cconv-dont-trim-unused-variables, and
if non-nil, don't "optimize" the lexical environment.

* lisp/emacs-lisp/edebug.el (edebug-make-enter-wrapper): Compile a binding of
cconv-dont-trim-unused-variables to t around the call of edebug-enter.

* lisp/emacs-lisp/testconver.el (testcover-analyze-coverage): Add a new arm to
the pcase form to handle the new form of edebug-enter.

23 months ago; Improve documentation of hash functions.
Eli Zaretskii [Sat, 11 Feb 2023 10:28:43 +0000 (12:28 +0200)]
; Improve documentation of hash functions.

* src/fns.c (Fsecure_hash, Fmd5): Document the length of the
return values.

* lisp/subr.el (sha1): Describe the return value in more detail.

* doc/lispref/text.texi (Checksum/Hash): Document 'sha1'.
Document the length of the strings returned by each hashing
algorithm.

23 months ago; Remove extraneous local variables from image-dired-*.el files
Eli Zaretskii [Sat, 11 Feb 2023 09:48:48 +0000 (11:48 +0200)]
; Remove extraneous local variables from image-dired-*.el files

These cause annoying prompts when visiting these files, and evidently
belong to a third-party package.
* lisp/image/image-dired-external.el:
* lisp/image/image-dired-tags.el:
* lisp/image/image-dired-dired.el:
* lisp/image/image-dired-util.el: Remove unsafe local-variables.

23 months agoFix displaying popup menus from a menu entry on Android
Po Lu [Sat, 11 Feb 2023 02:26:34 +0000 (10:26 +0800)]
Fix displaying popup menus from a menu entry on Android

* java/org/gnu/emacs/EmacsActivity.java (EmacsActivity, onDestroy)
(onWindowFocusChanged): Keep track of the last focused activity.
* java/org/gnu/emacs/EmacsDialog.java (display1): Use it if
there is no current focus.

23 months agoMerge remote-tracking branch 'origin/master' into feature/android
Po Lu [Sat, 11 Feb 2023 01:27:59 +0000 (09:27 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android

23 months agoAdd more java indentation tests
Theodor Thornhill [Mon, 6 Feb 2023 08:36:08 +0000 (09:36 +0100)]
Add more java indentation tests

* test/lisp/progmodes/java-ts-mode-resources/indent.erts: Use default
indent offset, and tweak the indentation examples.

23 months agobug-reference: prevent match-data clobbering (bug#61395)
Tassilo Horn [Fri, 10 Feb 2023 18:22:56 +0000 (19:22 +0100)]
bug-reference: prevent match-data clobbering (bug#61395)

* lisp/progmodes/bug-reference.el (bug-reference-fontify): Wrap call
to syntax-ppss in save-match-data since it can clobber our
match-data (bug#61395).

23 months agoFix last change
Michael Albinus [Fri, 10 Feb 2023 17:07:00 +0000 (18:07 +0100)]
Fix last change

23 months agoFix Tramp file name completion
Michael Albinus [Fri, 10 Feb 2023 16:48:44 +0000 (17:48 +0100)]
Fix Tramp file name completion

* lisp/net/tramp.el (tramp-completion-handle-expand-file-name):
Reimplement.  It must also work for the non-Tramp case.

* test/lisp/net/tramp-tests.el
(tramp-test26-interactive-file-name-completion): Fix test.

23 months ago; * admin/notes/tree-sitter/starter-guide: Typos.
Basil L. Contovounesios [Fri, 10 Feb 2023 15:24:45 +0000 (15:24 +0000)]
; * admin/notes/tree-sitter/starter-guide: Typos.

Reported by Romanos Skiadas <rom.skiad@gmail.com>.

23 months agoImprove appearance of the Android preferences screen
Po Lu [Fri, 10 Feb 2023 15:03:43 +0000 (23:03 +0800)]
Improve appearance of the Android preferences screen

* .gitignore: Add org/gnu/emacs/R.java.
* cross/Makefile.in (top_builddir): Include verbose.mk.  Rewrite
rules to print nice looking statements.
* doc/emacs/android.texi (Android, Android Startup)
(Android Environment, Android Windowing, Android Fonts):
* doc/emacs/emacs.texi (Top): Add an extra ``Android
Troubleshooting'' node and move troubleshooting details there.
* java/Makefile.in: Generate R.java; improve appearance by using
verbose.mk.

* java/org/gnu/emacs/EmacsPreferencesActivity.java: Reimplement
in terms of PreferencesActivity.
* java/org/gnu/emacs/EmacsView.java (handleDirtyBitmap): Avoid
flicker.
* java/res/xml/preferences.xml: New file.
* src/verbose.mk.in (AM_V_AAPT, AM_V_SILENT): New variables.

23 months agoImplement more features for the Emacs ``documents provider''
Po Lu [Fri, 10 Feb 2023 13:07:14 +0000 (21:07 +0800)]
Implement more features for the Emacs ``documents provider''

* java/org/gnu/emacs/EmacsDocumentsProvider.java (queryRoots):
Implement isChild.
(getNotificationUri, notifyChange): New functions.
(queryDocument1): Set rename and remove flags.
(queryDocument, queryChildDocuments): Allow the requester to
detect changes in the directory hierarchy.
(createDocument, deleteDocument, removeDocument): Signal changes
to the directory hierarchy.

23 months ago; Fix recent changes in treesit docs
Eli Zaretskii [Fri, 10 Feb 2023 12:14:05 +0000 (14:14 +0200)]
; Fix recent changes in treesit docs

* doc/lispref/parsing.texi (Accessing Node Information): Fix
wording and indexing, and add cross-reference.

23 months ago; * java/org/gnu/emacs/EmacsCopyArea.java (perform): Fix typo.
Po Lu [Fri, 10 Feb 2023 11:25:10 +0000 (19:25 +0800)]
; * java/org/gnu/emacs/EmacsCopyArea.java (perform): Fix typo.

23 months agoMerge remote-tracking branch 'origin/master' into feature/android
Po Lu [Fri, 10 Feb 2023 11:09:37 +0000 (19:09 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android

23 months agoFix buffer swapping on Android 7.1 and earlier
Po Lu [Fri, 10 Feb 2023 11:06:38 +0000 (19:06 +0800)]
Fix buffer swapping on Android 7.1 and earlier

* java/org/gnu/emacs/EmacsSurfaceView.java
(reconfigureFrontBuffer): Don't use function only present on
Android 8.0 and later.

23 months agoUpdate Android port
Po Lu [Fri, 10 Feb 2023 10:57:51 +0000 (18:57 +0800)]
Update Android port

* doc/emacs/android.texi (Android Windowing): Remove yet another
limitation.
* java/debug.sh: Make this work on systems which prohibit
attaching to app processes from adbd.
* java/org/gnu/emacs/EmacsCopyArea.java (perform): Avoid
creating copies whenever possible.
* java/org/gnu/emacs/EmacsSurfaceView.java (EmacsSurfaceView):
Remove SurfaceView based implementation and use manual double
buffering with invalidate instead.
* java/org/gnu/emacs/EmacsView.java (EmacsView, handleDirtyBitmap)
(raise, lower, onDetachedFromWindow): Adjust accordingly.
* java/org/gnu/emacs/EmacsWindow.java (windowUpdated): Remove
function.
* src/sfntfont.c (sfntfont_open): Set font->max_width correctly.

23 months agoFix IUP for contours which start past end
Po Lu [Fri, 10 Feb 2023 09:55:01 +0000 (17:55 +0800)]
Fix IUP for contours which start past end

Found with Droid Sans Mono hinted with ttfautohint 1.8.4.

* src/sfnt.c (IUP_SINGLE_PAIR): If i is initially more than end,
make it start.
(sfnt_verbose): Handle cases where interpreter->glyph_zone is
NULL.
(main): Update tests.

23 months agoRename LIMIT to DEPTH in tree-sitter functions (bug#61231)
Yuan Fu [Fri, 10 Feb 2023 07:25:57 +0000 (23:25 -0800)]
Rename LIMIT to DEPTH in tree-sitter functions (bug#61231)

I only changed the Lisp functions, internal functions are left
unchanged.

* doc/lispref/parsing.texi (Retrieving Nodes): Update manual.
* src/treesit.c (Ftreesit_search_subtree)
(Ftreesit_induce_sparse_tree): Change LIMIT to DEPTH.

23 months agoEnsure that Eshell users can run lines of command output as input
Jim Porter [Mon, 6 Feb 2023 05:37:08 +0000 (21:37 -0800)]
Ensure that Eshell users can run lines of command output as input

Previously, this failed to work properly because any additional input
the user entered would have no 'field' property, confusing
'eshell-get-old-input'.  To fix this, we simply ensure that any
user-entered text in the output field retains said output field
(bug#61310).

* lisp/eshell/esh-util.el (eshell-command-output-properties): New
variable.
(eshell--mark-as-output, eshell--mark-yanked-as-output): New
functions, mostly copied from comint.

* lisp/eshell/esh-proc.el (eshell-interactive-process-filter):
* lisp/eshell/esh-mode.el (eshell-interactive-print): Call
'eshell--mark-as-output'.
(eshell-get-old-input): Remove properties from the returned string
just to be safe.

* test/lisp/eshell/eshell-tests.el (eshell-test-value): New variable.
(eshell-test/get-old-input/rerun-command)
(eshell-test/get-old-input/run-output): New tests.

* test/lisp/eshell/em-prompt-tests.el
(em-prompt-test/field-properties)
(em-prompt-test/field-properties/no-highlight): Use
'eshell-command-output-properties'.

23 months ago; Fix incorrect function name in treesit manual
Simon Pugnet [Thu, 9 Feb 2023 11:33:31 +0000 (11:33 +0000)]
; Fix incorrect function name in treesit manual

An example in the documentation uses the function
'treesit-get-parser-create' which does not exist.  Replace this with
'treesit-parser-create'.

* admin/notes/tree-sitter/html-manual/Multiple-Languages.html:
* doc/lispref/parsing.texi (Multiple Languages):
Change example.

Copyright-paperwork-exempt: yes

23 months agoEnsure that deferred commands don't make Eshell forget let-bound values
Jim Porter [Wed, 25 Jan 2023 01:14:54 +0000 (17:14 -0800)]
Ensure that deferred commands don't make Eshell forget let-bound values

* lisp/eshell/esh-cmd.el (Command evaluation macros): Expand this
documentation to list allowed special forms and caveats for working
with 'if' and 'while'.
(eshell-do-eval): Provide more detail in docstring.  Handle
'eshell-defer' inside 'let' forms.

* test/lisp/eshell/esh-cmd-tests.el
(esh-cmd-test/let-rebinds-after-defer): New test (bug#59469).

23 months agoFix typo
Po Lu [Fri, 10 Feb 2023 02:59:22 +0000 (10:59 +0800)]
Fix typo

* src/sfnt.c (sfnt_read_cmap_table): Fix typo.
(main): Update tests.

23 months agoAdd 'live' property to treesit-node-check (bug#61235)
Yuan Fu [Mon, 6 Feb 2023 04:22:52 +0000 (20:22 -0800)]
Add 'live' property to treesit-node-check (bug#61235)

* doc/lispref/parsing.texi (Accessing Node Information): Document.
* src/treesit.c (treesit_parser_live_p): New function.
(Ftreesit_node_check): Add 'live' property.
* test/src/treesit-tests.el (treesit-node-api): Add tests.

23 months agoUpdate to Transient v0.3.7-205-gb8ad0da
Jonas Bernoulli [Thu, 9 Feb 2023 22:53:33 +0000 (23:53 +0100)]
Update to Transient v0.3.7-205-gb8ad0da

23 months agoxref--insert-xrefs: Use 'shadow' for the line number colon
Dmitry Gutov [Thu, 9 Feb 2023 19:57:18 +0000 (21:57 +0200)]
xref--insert-xrefs: Use 'shadow' for the line number colon

* lisp/progmodes/xref.el (xref--insert-xrefs): Use face 'shadow' for
the line number colon instead of continuing it face (bug#61340).

23 months ago* lisp/icomplete.el (icomplete-exhibit): Check validity of the current buffer.
Juri Linkov [Thu, 9 Feb 2023 18:08:15 +0000 (20:08 +0200)]
* lisp/icomplete.el (icomplete-exhibit): Check validity of the current buffer.

This function is applicable only in buffers where functions like
icomplete--field-beg can be called, and they expects either non-nil
completion-in-region--data or window-minibuffer-p (bug#61308).

23 months agoFix 'rmail-summary-output'
Eli Zaretskii [Thu, 9 Feb 2023 15:34:19 +0000 (17:34 +0200)]
Fix 'rmail-summary-output'

* lisp/mail/rmailsum.el (rmail-summary-output): Fix deletion of
messages when 'rmail-output-reset-deleted-flag' is non-nil.
(Bug#61380)

23 months agoMerge remote-tracking branch 'origin/master' into feature/android
Po Lu [Thu, 9 Feb 2023 14:56:58 +0000 (22:56 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android

23 months agoAllow other text editors to edit files in Emacs' home directory
Po Lu [Thu, 9 Feb 2023 14:56:41 +0000 (22:56 +0800)]
Allow other text editors to edit files in Emacs' home directory

* java/AndroidManifest.xml.in: Declare the new documents
provider.
* java/README: Describe the meaning of files in res/values.
* java/org/gnu/emacs/EmacsDocumentsProvider.java
(EmacsDocumentsProvider): New file.
* java/res/values-v19/bool.xml:
* java/res/values/bool.xml: New files.

23 months agolisp-mode: add docstring recognition for more common lisp symbols
Nicolas Martyanoff [Thu, 9 Feb 2023 10:39:14 +0000 (11:39 +0100)]
lisp-mode: add docstring recognition for more common lisp symbols

* lisp/emacs-lisp/lisp-mode.el (define-compiler-macro)
(define-setf-expander, deftype): Add the 'doc-string-elt'
property for proper docstring highlighting in Common Lisp.

23 months ago; Improve discoverability of empty file names handling
Eli Zaretskii [Thu, 9 Feb 2023 14:06:55 +0000 (16:06 +0200)]
; Improve discoverability of empty file names handling

* doc/lispref/files.texi (Relative File Names)
(Testing Accessibility, File Name Expansion): Document and index
the behavior with empty strings as file names.

23 months ago; * src/sfnt.c (main): Update tests.
Po Lu [Thu, 9 Feb 2023 12:32:58 +0000 (20:32 +0800)]
; * src/sfnt.c (main): Update tests.

23 months agoUpdate to Transient v0.3.7-204-gecff8c2
Jonas Bernoulli [Thu, 9 Feb 2023 12:28:05 +0000 (13:28 +0100)]
Update to Transient v0.3.7-204-gecff8c2

23 months agoImplement instructing compound glyphs
Po Lu [Thu, 9 Feb 2023 12:13:42 +0000 (20:13 +0800)]
Implement instructing compound glyphs

* src/sfnt.c (sfnt_read_simple_glyph, sfnt_read_compound_glyph)
(sfnt_read_glyph): Take size_t offsets.
(struct sfnt_compound_glyph_context)
(sfnt_expand_compound_glyph_context)
(sfnt_decompose_compound_glyph): Take size_t contour offsets.
(sfnt_decompose_glyph): Always close contour even if the first
point isn't on-curve.
(sfnt_build_outline_edges): Fix coding style.
(sfnt_interpret_iup): Skip phantom points during IUP.
(sfnt_decompose_instructed_outline): Clarify documentation.
Always close contour even if the first point isn't on-curve.
(struct sfnt_test_dcontext, sfnt_test_move_to, sfnt_test_line_to)
(sfnt_test_curve_to, sfnt_transform_f26dot6, sfnt_test_get_glyph)
(sfnt_test_free_glyph, sfnt_test_span, sfnt_test_edge_ignore)
(sfnt_interpret_compound_glyph_2, sfnt_test_edges, main): Update
tests.

* src/sfnt.h: Export new function.

* src/sfntfont.c (sfntfont_get_glyph_outline): Handle compound
glyphs.
(sfntfont_measure_instructed_pcm, sfntfont_measure_pcm)
(sfntfont_draw): Update accordingly.

23 months agoFix Scala entry in Eglot's DB of LSP servers
Eli Zaretskii [Thu, 9 Feb 2023 10:17:18 +0000 (12:17 +0200)]
Fix Scala entry in Eglot's DB of LSP servers

* lisp/progmodes/eglot.el (eglot-server-programs): Support Scala
LSP named "metals", in addition to "metals-emacs".  (Bug#61312)

23 months agoMerge from origin/emacs-29
Stefan Kangas [Thu, 9 Feb 2023 05:30:12 +0000 (06:30 +0100)]
Merge from origin/emacs-29

973c1d24c6a ruby-ts-mode: Also don't reindent 'identifier' when insid...
a5651c0c403 ruby-ts-mode: Fix indentation inside empty if/unless/case...
0ec0a610ed2 * lisp/iimage.el (iimage-mode-buffer): Handle multiple re...
d11d7aee1a6 ; Fix memory leak in treesit.c

23 months ago; Merge from origin/emacs-29
Stefan Kangas [Thu, 9 Feb 2023 05:30:12 +0000 (06:30 +0100)]
; Merge from origin/emacs-29

The following commit was skipped:

21f3c7ef269 * lisp/edmacro.el (edit-kbd-macro): Fix thinko (bug#61333)

23 months agoMerge from origin/emacs-29
Stefan Kangas [Thu, 9 Feb 2023 05:30:12 +0000 (06:30 +0100)]
Merge from origin/emacs-29

31bf35935f2 ; Fix doc strings in iimage.el

23 months agoruby-ts-mode: Also don't reindent 'identifier' when inside ERROR
Dmitry Gutov [Thu, 9 Feb 2023 02:48:25 +0000 (04:48 +0200)]
ruby-ts-mode: Also don't reindent 'identifier' when inside ERROR

* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules):
Also don't reindent 'identifier' when inside ERROR.

23 months agoruby-ts-mode: Fix indentation inside empty if/unless/case/def
Dmitry Gutov [Thu, 9 Feb 2023 02:15:41 +0000 (04:15 +0200)]
ruby-ts-mode: Fix indentation inside empty if/unless/case/def

* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules):
Add new rule.

* test/lisp/progmodes/ruby-ts-mode-tests.el
(ruby-ts-indent-empty-if-else): New test.

23 months ago* lisp/iimage.el (iimage-mode-buffer): Handle multiple regexps.
LensPlaysGames [Wed, 8 Feb 2023 18:56:48 +0000 (20:56 +0200)]
* lisp/iimage.el (iimage-mode-buffer): Handle multiple regexps.

Go to the beginning of the buffer before searching every regexp in
iimage-mode-image-regex-alist.

Copyright-paperwork-exempt: yes

23 months ago; Fix memory leak in treesit.c
Eli Zaretskii [Wed, 8 Feb 2023 16:40:50 +0000 (18:40 +0200)]
; Fix memory leak in treesit.c

* src/treesit.c (treesit_load_language): Fix a memory leak.
Reported by Eric Gillespie <epg@pretzelnet.org>.

23 months agoUpdate Android port
Po Lu [Wed, 8 Feb 2023 15:39:46 +0000 (23:39 +0800)]
Update Android port

* src/sfnt.c (SCFS): Fix order of arguments.
(sfnt_normalize_vector): Make sure vx and vy are within a
reasonable range.
(sfnt_move): Don't move when vectors are orthogonal.
(main): Update.

23 months agoUpdate Android port
Po Lu [Wed, 8 Feb 2023 14:51:43 +0000 (22:51 +0800)]
Update Android port

* doc/emacs/android.texi (Android Startup): Fix typos.
* src/sfnt.c (sfnt_interpret_msirp): Fix order in which operands
to MSIRP are popped.
(main): Reduce ppem values.

23 months agoMerge remote-tracking branch 'origin/master' into feature/android
Po Lu [Wed, 8 Feb 2023 14:41:46 +0000 (22:41 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android

23 months agoUpdate Android port
Po Lu [Wed, 8 Feb 2023 14:40:10 +0000 (22:40 +0800)]
Update Android port

* doc/lispref/frames.texi (On-Screen Keyboards): Describe return
value of `frame-toggle-on-screen-keyboard'.
* java/org/gnu/emacs/EmacsSurfaceView.java (surfaceChanged)
(surfaceCreated, EmacsSurfaceView): Remove unuseful
synchronization code.  The framework doesn't seem to look at
this at all.

* java/org/gnu/emacs/EmacsView.java (EmacsView):
(onLayout): Lay out the window after children.
(swapBuffers): Properly implement `force'.
(windowUpdated): Delete function.

* lisp/frame.el (frame-toggle-on-screen-keyboard): Return
whether or not the on screen keyboard might've been displayed.

* lisp/minibuffer.el (minibuffer-on-screen-keyboard-timer):
(minibuffer-on-screen-keyboard-displayed):
(minibuffer-setup-on-screen-keyboard):
(minibuffer-exit-on-screen-keyboard): Improve OSK dismissal when
there are consecutive minibuffers.

* lisp/touch-screen.el (touch-screen-window-selection-changed):
New function.
(touch-screen-handle-point-up): Register it as a window
selection changed function.

* src/android.c (struct android_emacs_window)
(android_init_emacs_window): Remove references to
`windowUpdated'.
(android_window_updated): Delete function.
* src/android.h (struct android_output): Remove
`last_configure_serial'.
* src/androidterm.c (handle_one_android_event)
(android_frame_up_to_date):
* src/androidterm.h (struct android_output): Remove frame
synchronization, as that does not work on Android.

23 months ago* lisp/edmacro.el (edit-kbd-macro): Fix thinko (bug#61333)
Stefan Monnier [Tue, 7 Feb 2023 23:10:33 +0000 (18:10 -0500)]
* lisp/edmacro.el (edit-kbd-macro): Fix thinko (bug#61333)

Backported from commit 2273cdb40e1939f7c29a669f6a64e6a27738c1a5.

23 months ago; Fix doc strings in iimage.el
Eli Zaretskii [Wed, 8 Feb 2023 12:56:42 +0000 (14:56 +0200)]
; Fix doc strings in iimage.el

* lisp/iimage.el (iimage-mode-image-regex-alist)
(iimage-modification-hook): Doc fixes.

23 months agoFlatten nested `concat` calls
Mattias Engdegård [Wed, 8 Feb 2023 12:45:57 +0000 (13:45 +0100)]
Flatten nested `concat` calls

* lisp/emacs-lisp/byte-opt.el (byte-optimize-concat):
Flatten nested forms; concat is associative.  This reduces the number
of calls and may coalesce adjacent constant strings.

23 months agoSimplify and speed up parts of elisp optimiser
Mattias Engdegård [Wed, 8 Feb 2023 12:18:32 +0000 (13:18 +0100)]
Simplify and speed up parts of elisp optimiser

* lisp/emacs-lisp/byte-opt.el (byte-optimize-constant-args): Simplify.
(byte-optimize--constant-symbol-p): Speed up.
(byteopt--eval-const): New.
(byte-optimize-member, byte-optimize-concat, byte-optimize-append):
Use byteopt--eval-const instead of eval which is much slower.