1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-08 20:50:52 -08:00
Commit graph

48921 commits

Author SHA1 Message Date
Michael Albinus
088dd67f89 New filenotify tests
* src/inotify.c (Finotify_watch_list, Finotify_allocated_p):
Fix argument list.

* test/lisp/filenotify-tests.el (file-notify-test04-autorevert):
Use `skip-when'.
(file-notify-test12-unmount, file-notify-test12-unmount-remote):
New tests.
2023-10-12 11:02:53 +02:00
Po Lu
963ccc05ac Respond to JNI errors around drawing operations
* src/android.c (android_fill_polygon, android_draw_rectangle)
(android_draw_point, android_draw_line, android_lock_bitmap):
Check or clear errors around potential JNI errors; the penalty
incurred to performance is not as significant as was expected.
2023-10-12 08:43:56 +08:00
Po Lu
6265b7195d Update Android keysym list
* src/keyboard.c (lispy_function_keys): Introduce entries for
scroll lock, num lock, and input method keys.
2023-10-11 16:58:35 +08:00
Michael Albinus
f7185ca29b File notifications report unmount events (bug#66381)
* doc/lispref/os.texi (File Notifications): Unmounting a watched
filesystem is reported now.

* etc/NEWS: File notifications report unmount events now.
Fix typos.

* lisp/filenotify.el (file-notify--callback-inotify)
(file-notify--add-watch-inotify): Handle `unmount'.
(file-notify--callback-kqueue, file-notify--add-watch-kqueue):
Handle `revoke'.
(file-notify--callback-gfilenotify): Handle `unmounted'.
(file-notify-callback): Handle `unmount' and `unmounted'.
(file-notify--add-watch-inotify):

* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch):
Handle `unmounted'.

* lisp/net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch):
Handle `unmount' and `unmounted'.

* src/gfilenotify.c (dir_monitor_callback): Handle Qunmounted.

* src/inotify.c (symbol_to_inotifymask): Handle IN_IGNORED and
IN_UNMOUNT.

* src/kqueue.c (kqueue_callback, Fkqueue_add_watch):
Handle NOTE_REVOKE.
(Fkqueue_add_watch): Adapt docstring.
(syms_of_kqueue): Declare `revoke.
2023-10-10 19:51:22 +02:00
Po Lu
336c367411 Implement frame restacking under Android
* java/org/gnu/emacs/EmacsActivity.java (invalidateFocus1):
Synchronize with window.children for iteration through it.

* java/org/gnu/emacs/EmacsService.java (queryTree): Synchronize
with windowList for iteration through it.

* java/org/gnu/emacs/EmacsView.java (moveChildToBack): Correct
formatting mistake.
(moveAbove, moveBelow): New functions.

* java/org/gnu/emacs/EmacsWindow.java (destroyHandle, reparentTo)
(raise, lower): Remedy synchronization blunders.
(reconfigure): New function.

* src/android.c (android_init_emacs_window): Link with
`reconfigure'.
(android_reconfigure_wm_window): New wrapper function.

* src/androidfns.c (android_frame_restack): New function.
(Fandroid_frame_restack): Properly implement this function and
expunge outdated comment.

* src/androidgui.h (enum android_stack_mode)
(enum android_window_changes): New enumerators.
2023-10-10 13:11:14 +08:00
Mattias Engdegård
156392fee5 Don't allow Services entries in pop-up menus on macOS (bug#66420)
* src/nsmenu.m ([EmacsMenu runMenuAt:forFrame:keymaps:]):
Prevent the system from adding context menu plug-ins
(Services entries or sub-menu) to all our pop-up menus.
2023-10-09 17:39:32 +02:00
Po Lu
9e78b82d1b Update default font substitution list
* src/sfntfont-android.c (init_sfntfont_android): Account for
Android 4.x not distributing Noto Serif.
2023-10-09 09:30:56 +08:00
Eli Zaretskii
5384619921 Merge from origin/emacs-29
a74e51cfd1 Fix a defcustom :type
c27b90d04b Fix 'ido--ffap-find-file'
1594d5f17a Fix setting the pipe capacity for subprocesses
aad8b5d78f Handle LANG on macOS differently (bug#65908)

# Conflicts:
#	src/process.c
2023-10-07 03:48:00 -04:00
Eli Zaretskii
1c9ddf3948 Merge from origin/emacs-29
e9b88f61cc Fix a defcustom :type
3216cd9695 Fix pulse-flag :type
2065ab5562 Fix defcustoms in timeclock.el
bdd3013249 ; * lisp/image-mode.el (image-mode-to-text, image-mode-as...
5c2d9ae48e ; * lisp/image-mode.el: Fix typos in doc strings (bug#663...
fa0d3f45ae ; Improve wording of last change
3ef259e28a Improve documentation of `ns-use-proxy-icon`
712505a82b Document assigning libraries to packages in make-tarball.txt
6bdc5cfe38 Doc fix; more consistently refer to "text terminals"
d210d761b1 ; Fix doc strings of overlay-arrow variables
4fd00ff1f7 Fix defcustoms in type-break.el (Bug#66210)
47770b0eca Fix term-scroll-to-bottom-on-output :type
f8bdc8dff0 ; Normalize GNU ELPA :core package statements
63ec6d998d ; * doc/emacs/custom.texi (Early Init File): Improve inde...
a4185f87bd ; Silence macOS 14 warning
d9d6e14a69 ; * lisp/vc/vc.el (vc-next-action): Improve commentary.
d558f38fe5 ; * lisp/emacs-lisp/let-alist.el (let-alist): Fix quoting...
71feee7930 Doc fix in let-alist for keys with nil value
72cc9cf2cd ; Fix typos
2023-10-07 03:46:48 -04:00
Po Lu
28b3148076 Revise font family translation lists under Android
* doc/emacs/android.texi (Android Environment): Revise paragraph
illustrating the startup notification.
(Android Fonts): Mention font family replacement.

* src/sfntfont-android.c (init_sfntfont_android): Translate
DejaVu Serif to either Droid Serif or Noto Serif.
2023-10-07 09:25:23 +08:00
Eli Zaretskii
1594d5f17a Fix setting the pipe capacity for subprocesses
* src/process.c (create_process) [F_SETPIPE_SZ]: Set the pipe
capacity only if the required read-process-max is larger than the
default capacity of the pipe.  (Bug#66288)
2023-10-06 08:31:59 +03:00
Stefan Kangas
505c806230 Revert slurp_image extraction for svg_load
* src/image.c (svg_load): Inline slurp_image code again, as it didn't
build in its current form.
Reported by Andreas Schwab <schwab@linux-m68k.org>.
2023-10-06 01:57:39 +02:00
Stefan Kangas
bf4d4ab4dd Extract function slurp_image from image loading
* src/image.c (slurp_image): New function...
(xbm_load, xpm_load, pbm_load, webp_load, svg_load): ...extracted from
here.
2023-10-05 23:09:56 +02:00
Gerd Möllmann
aad8b5d78f Handle LANG on macOS differently (bug#65908)
* src/nsterm.m (ns_init_locale): If LANG is set, try to use that,
otherwise try to deduce what LANG should be.  Check is the result is
valid, and use LANG="en_US.UTF-8" if not.
2023-10-05 20:41:54 +02:00
Manuel Giraud
873341037e Nontext mouse cursor as default on {tab|tool}-bar
* src/xdisp.c (note_mouse_highlight): Always set the mouse cursor to
nontext when entering tab-bar and tool-bar.  (Bug#66243)
2023-10-05 10:27:38 +03:00
Po Lu
123b77436e Introduce an input method callback required by Android 34
* java/org/gnu/emacs/EmacsInputConnection.java (replaceText):
New function.

* java/org/gnu/emacs/EmacsNative.java (replaceText): Declare
native function.

* src/androidgui.h (enum android_ime_operation): New operation
ANDROID_IME_REPLACE_TEXT.

* src/androidterm.c (android_handle_ime_event): Decode text when
encountering an ANDROID_IME_REPLACE_TEXT operation.  Return if
decoding overflowed rather than presenting Qnil to textconv
functions.
(replaceText): New JNI function.

* src/frame.h (enum text_conversion_operation): New operation
TEXTCONV_REPLACE_TEXT.

* src/textconv.c (really_commit_text): Move point to start if
the composing region is set.
(really_replace_text): New function.
(handle_pending_conversion_events_1) <TEXTCONV_REPLACE_TEXT>:
New case.
(replace_text): New function.

* src/textconv.h: Update prototypes.
2023-10-05 14:23:20 +08:00
Po Lu
253f1aff1a Port Emacs to Android 34
* configure.ac: Detect and require Android 34 headers.

* doc/emacs/android.texi (Android Environment): Mention new
permissions mandated by Android 34.

* java/AndroidManifest.xml.in: Introduce new permissions and
foreground service types prerequisite for background execution under
Android 34.

* java/INSTALL: Update installation documentation.

* java/org/gnu/emacs/EmacsSdk7FontDriver.java (Sdk7FontEntity)
(Sdk7FontObject):

* java/org/gnu/emacs/EmacsService.java (onCreate): Silence deprecation
warnings.

* src/android.c: Update documentation.
2023-10-05 11:57:26 +08:00
Po Lu
bb417daa70 Correct local reference leaks
* src/android.c (android_build_string): Accept a list of local
references to destroy upon an allocation failure, facilitating
the proper deallocation of local references in such situations.
(android_browse_url): Revise for new calling convention.

* src/android.h (android_build_string): Update declaration
correspondingly.

* src/androidmenu.c (android_menu_show, android_dialog_show):
Revise for new calling convention.

* src/androidselect.c (android_notifications_notify_1): Supply
each successive local reference to android_build_string as
notification text is being encoded.

* src/androidvfs.c (android_saf_exception_check): Introduce
absent va_end.
2023-10-04 16:33:05 +08:00
Stefan Monnier
37130fd500 regex.c: Fix recent regression with mutually_exclusive_p
The new analysis code ended up increasing the scope of an optimization
a bit too far.  Reign it in.

* src/regex-emacs.c (struct mutexcl_data): Add `unconstrained` field.
(mutually_exclusive_one): Use and set it.
(mutually_exclusive_p): Initialize it.

* test/src/regex-emacs-tests.el (regexp-tests-backtrack-optimization):
Add test.
2023-10-03 10:10:57 -04:00
Po Lu
1ad2d2f77c Update Android port
* src/androidvfs.c (android_afs_open, android_asset_fstat):
Return proper mtime within file descriptors incorporating asset
data and within android_asset_fstat.

* src/xterm.c (handle_one_xevent)
<KeyPress, XI_KeyPress>: Verify presence of a quit keysym
prior to registering it.
2023-10-03 08:55:57 +08:00
Basil L. Contovounesios
248adb4b77 ; Fix mistyped --enable-checking in docs. 2023-10-01 18:42:52 +02:00
Stefan Kangas
fa0d3f45ae ; Improve wording of last change
* doc/emacs/macos.texi (Mac / GNUstep Customization):
* src/nsfns.m (syms_of_nsfns): Improve wording.
Reported by Gerd Möllmann <gerd.moellmann@gmail.com>.
2023-10-01 18:27:11 +02:00
Stefan Kangas
3ef259e28a Improve documentation of ns-use-proxy-icon
* doc/emacs/macos.texi (Mac / GNUstep Customization):
* src/nsfns.m (syms_of_nsfns): Fix documentation of
'ns-use-proxy-icon'; explain what it does and how it's
used.  (Bug#66190)
2023-10-01 15:37:06 +02:00
Po Lu
12aca0f90d Update Android port
* doc/emacs/input.texi (On-Screen Keyboards): Revise
documentation to reflect changes.

* src/keyboard.c (lispy_function_keys) <KEYCODE_DPAD_CENTER>:
Define select key absent out of negligence.

* src/xterm.c (syms_of_xterm) <x-quit-keysym>: Default to nil.
(bug#66040)
2023-10-01 17:08:25 +08:00
Eli Zaretskii
d210d761b1 ; Fix doc strings of overlay-arrow variables
* src/xdisp.c (syms_of_xdisp) <overlay-arrow-string>
<overlay-arrow-variable-list>: Doc fixes.  (Bug#66282)
2023-10-01 08:08:03 +03:00
Eli Zaretskii
fcd0bb295a ; * src/regex-emacs.c (forall_firstchar_1): Fix compilation error. 2023-09-30 20:16:40 +03:00
Stefan Monnier
63ddbcc022 Merge remote-tracking branch 'refs/remotes/origin/master' 2023-09-30 09:42:02 -04:00
Po Lu
cdc653d68f Update Android port
* src/androidmenu.c (android_menu_show): Properly encode pane
names before deriving Java strings from them.

* src/sfntfont.c (sfnt_parse_style, sfntfont_list_1): Intern
adstyles.
2023-09-30 15:40:21 +08:00
Po Lu
64c58011b7 Fix last change
* src/search.c (Fre__describe_compiled): Correct typos and
pointer signedness missmatch.
2023-09-30 08:30:59 +08:00
Stefan Monnier
168cc0aff0 regex.c: Remove the old analyzes functions
After testing and checking that the changes brought by the new
consolidated analysis function (which are all cases of improved
optimizations) are indeed safe, remove the old code.

* src/regex-emacs.c (analyze_first_old): Delete function.
(analyze_first): Don't call it any more.
(skip_noops): Delete function.
(mutually_exclusive_aux): Delete function.
(mutually_exclusive_p): Don't call it any more.
2023-09-29 17:46:20 -04:00
Stefan Monnier
e61a039843 regex.c: Consolidate the two analysis functions
We currently have two functions that analyze the bytecode
to try and apply optimizations: `analyze_first` and `mutually_exclusive_p`.
Extract the common code between them into a new function `forall_firstchar`,
and then rewrite the old ones on top of that one.

Along the way, we get slightly better analyses that reverts
the recent de-optimizations but without re-introducing the
corresponding bugs.

* src/regex-emacs.c (forall_firstchar_1, forall_firstchar): New functions.
(analyze_first_old): Rename from `analyze_first`.
(struct anafirst_data): New struct.
(analyze_first_fastmap, analyze_first_null): New functions.
(analyze_first): Rewrite to use `forall_firstchar` with those two functions.
Take a `bufp` rather than a `multibyte` arg.
(regex_compile, re_compile_fastmap): Adjust calls accordingly.
(struct mutexcl_data): New struct.
(mutually_exclusive_one): New function.
(mutually_exclusive_p): Rewrite to use `forall_firstchar` with that function.
2023-09-29 17:39:10 -04:00
Stefan Monnier
6e44d6e184 regex.c: Various cosmetic changes
* src/regex-emacs.c (extract_address): New function.
(skip_noops, mutually_exclusive_aux, re_match_2_internal): Use it.
(regex_compile): Fix oversight in last commit.
(analyze_first): Return a bool rather than an int.
(re_compile_fastmap): Simplify accordingly.
(re_match_2_internal): Share the common code between the fail and
success exit paths.
2023-09-29 16:45:41 -04:00
Stefan Monnier
35fbf6f158 * src/regex-emacs.c (STORE_NUMBER): Make it a plain function 2023-09-29 15:22:06 -04:00
Stefan Monnier
cc0d7d7a38 search.c (re--describe-compiled): New function (bug#66261)
This provides a fairly primitive but handy way to see what
a regexp compiles to without having to enable REGEX_EMACS_DEBUG
and wade through tons of stderr output.

* doc/lispref/searching.texi (Regexp Problems): Mention
`re--describe-compiled`.

* src/regex-emacs.c (debug_putchar, print_fastmap)
(print_partial_compiled_pattern, print_compiled_pattern): Add `dest`
argument, and compile also when `ENABLE_CHECKING` is set.
(DEBUG_PRINT_COMPILED_PATTERN, print_double_string, regex_compile):
Adjust to additional argument.

* src/regex-emacs.h (print_compiled_pattern): Declare.

* src/search.c (Fre__describe_compiled): New function.
(syms_of_search): Defsubr it.
2023-09-29 14:55:24 -04:00
Eshel Yaron
a4185f87bd ; Silence macOS 14 warning
* src/nsterm.m: Implement 'applicationSupportsSecureRestorableState'
to silence warning on macOS 14.  (Bug#66245)
2023-09-29 13:32:55 +02:00
Stefan Monnier
7c26501175 regex.c (mutually_exclusive_aux) <wordbound>: Remove optimization
Another case that was too optimistic.  Better use \> or \< rather
than \b if you want your regexp to be handled efficiently.

* src/regex-emacs.c (mutually_exclusive_aux) <wordbound>: Cancel optimization.
* test/src/regex-emacs-tests.el (regexp-tests-backtrack-optimization):
New test.
2023-09-28 12:37:44 -04:00
Po Lu
7b43d70c73 Update Android port
* doc/emacs/android.texi (Android Windowing): Document
`android-keyboard-bell-duration'.

* java/org/gnu/emacs/EmacsService.java (ringBell): New argument
DURATION.

* src/android.c (android_init_emacs_service): Adjust
correspondingly.
(android_bell): Provide the duration of the vibration.

* src/androidfns.c (syms_of_androidfns)
<android_keyboard_bell_duration>: New variable.
2023-09-28 08:46:35 +08:00
Stefan Monnier
bc52fdd1d1 * src/regex-emacs.c (analyze_first): Fix incorrect optimization
The optimization was incorrect in a particular corner case.
In this fix I just disable it conservatively for more cases because
it's not obvious how to fix it while preserving the "good" cases.

We may find a better fix by using an approach like the one
in `mutually_exhaustive_aux`, but for now this is good enough,
especially since \{..\} repetitions are not used very frequently.

* test/src/regex-resources/PTESTS: New test.
2023-09-27 13:29:50 -04:00
Stefan Monnier
e88be844bf regex.c (mutually_exclusive_p): Fix initial value of loop_beg
* src/regex-emacs.c (mutually_exclusive_p): Don't pretend that pattern
position 0 has been checked already.

* test/src/regex-emacs-tests.el (regexp-tests-backtrack-optimization):
Add a corresponding regression test plus some other related tests
I had around.
2023-09-26 11:43:51 -04:00
Po Lu
6a402bd3a7 Update Android port
* src/androidterm.c (android_draw_fringe_bitmap): Sync with
xterm.c.
2023-09-26 09:36:38 +08:00
Po Lu
719f8a51be Update Android port
* src/androidterm.c (android_clip_to_row)
(android_draw_fringe_bitmap, android_draw_hollow_cursor)
(android_draw_bar_cursor): Sync with xterm.c.

* src/xterm.c (x_draw_fringe_bitmap): Delete unused variables.
2023-09-26 09:35:51 +08:00
Po Lu
50281b4007 Properly clip overlaid fringe bitmaps
* src/xterm.c (x_draw_fringe_bitmap): Save clip rectangle from
x_clip_to_row, and draw only the intersection between it and the
fringe bitmap, for if the bitmap is overlaid, the clip mask will
override the clip rectangle.
(x_clip_to_row): New argument *RECT_RETURN.  All callers
changed.
2023-09-26 09:30:04 +08:00
Mattias Engdegård
091b8de586 Use heuristic to speed up allocation of small vectors (bug#65491)
Instead of scanning vector_free_lists from the appropriate size until
we find a nonempty bucket, start at the last bucket where we last put
something in.  This may favour splitting larger vectors than necessary
but in general saves a lot of time in the allocation of small vectors.

Original patch by Ihor Radchenko.

* src/alloc.c (last_inserted_vector_free_idx): New variable.
(setup_on_free_list): Set it.
(allocate_vector_from_block): Use it.
(sweep_vectors): Reset it.
2023-09-25 17:33:21 +02:00
Mattias Engdegård
aa28527500 Remove useless half of vector_free_lists array (bug#65491)
The latter half of vector_free_lists was never used in any meaningful
way but it did require traversal during allocation and GC.  Reduce it
to sizes we actually allocate, with a bucket for bigger ones.

* src/alloc.c (VECTOR_MAX_FREE_LIST_INDEX): Rename to...
(VECTOR_FREE_LIST_ARRAY_SIZE): ... this and adjust its value.
(vector_free_lists): Use new, smaller size.
(setup_on_free_list, allocate_vector_from_block):
Adapt to new vector_free_lists size.
(pseudovector_nbytes): New function extracted from...
(vectorlike_nbytes): ...here.
2023-09-25 16:49:29 +02:00
Po Lu
df5a9a78b5 Update Android port
* doc/lispref/os.texi (Desktop Notifications): Revise
documentation for android-notifications-notify to reflect
changes.

* java/org/gnu/emacs/EmacsDesktopNotification.java (display1):
Convert notification importance to a legacy priority between
Android 7.1 and 4.1.

* java/org/gnu/emacs/EmacsPixmap.java (EmacsPixmap): Remove
immutable bitmap constructor, as the underlying Android API
functions are erroneously implemented.

* src/android.c (android_init_emacs_pixmap): Cease searching for
deleted constructor.
(android_create_pixmap_from_bitmap_data): Create a pixmap, then
fill it with the contents of the bitmap, in lieu of employing
the aforementioned constructor.

* src/androidselect.c (Fandroid_notifications_notify): Revise
doc string.
2023-09-25 13:01:44 +08:00
Po Lu
38cd3cb433 Update Android port
* java/org/gnu/emacs/EmacsSdk11Clipboard.java
(getClipboardData): Correct typo in comment.

* src/androidvfs.c (android_authority_open)
(android_saf_delete_document): Circumvent JNI dynamic method
dispatch.
2023-09-24 18:19:54 +08:00
Stefan Kangas
9b933a6033 ; Fix typos 2023-09-24 09:04:43 +02:00
Po Lu
024432e583 Enlarge dumped_data
* src/w32heap.c (DUMPED_HEAP_SIZE): Increase to 24 MiB, the bare
minimum necessary to build a 32-bit Emacs.
2023-09-23 14:20:58 +08:00
Po Lu
5bd6f963f6 Correct comparisons between size_t and ssize_t
* src/sfnt.c (sfnt_read_table_directory, sfnt_read_cmap_format_0)
(sfnt_read_cmap_format_2, sfnt_read_cmap_format_4)
(sfnt_read_cmap_format_6, sfnt_read_cmap_format_8)
(sfnt_read_cmap_format_12, sfnt_read_cmap_format_14)
(sfnt_read_cmap_table_1, sfnt_read_cmap_table)
(sfnt_read_head_table, sfnt_read_hhea_table, sfnt_read_maxp_table)
(sfnt_read_glyf_table, sfnt_read_hmtx_table, sfnt_read_name_table)
(sfnt_read_meta_table, sfnt_read_ttc_header)
(sfnt_read_default_uvs_table, sfnt_read_nondefault_uvs_table)
(sfnt_read_fvar_table, sfnt_read_gvar_table, sfnt_read_avar_table)
(sfnt_read_cvar_table, sfnt_read_OS_2_table):

* src/sfntfont.c (sfnt_enum_font): Revise code written with only
signed `long' in mind to properly compare size_t values with
ssize_t.
2023-09-23 10:07:38 +08:00
Po Lu
3a1e65bd8e Properly apply XY offsets to compound component glyphs
* src/sfnt.c (sfnt_decompose_compound_glyph): Avoid overwriting
X and Y if defer_offsets is false.
2023-09-23 09:31:17 +08:00