1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-13 15:00:42 -08:00
Commit graph

48974 commits

Author SHA1 Message Date
Mattias Engdegård
7f3ee93e0c Use BASE_EQ instead of EQ for some uninterned symbols
* src/editfns.c (labeled_restrictions_pop, Fwiden):
* src/eval.c (lexbound_p, Fbacktrace__locals):
* src/fileio.c (Finsert_file_contents):
* src/fns.c (Fyes_or_no_p):
* src/keyboard.c (command_loop_1):
Use BASE_EQ for comparing with Qoutermost_restriction,
Qinternal_interpreter_environment and Qunbound as uninterned
symbols won't be EQ to a symbol-with-pos.
2023-11-10 16:57:15 +01:00
Po Lu
5324723c2b Clear image caches in reaction to system VM warnings
* java/org/gnu/emacs/EmacsNative.java (onLowMemory):

* java/org/gnu/emacs/EmacsService.java (onLowMemory): New
function.

* src/android.c (android_on_low_memory, onLowMemory): New
functions called when a VM caution is registered.  Clear
the image cache and run garbage collection.
2023-11-10 14:58:16 +08:00
Andrea Corallo
c559f4e368 comp: Add comp-common.el
* lisp/emacs-lisp/comp-common.el: New file.
(comp-common): New group.
(native-comp-verbose, native-comp-never-optimize-functions)
(native-comp-async-env-modifier-form, comp-limple-calls)
(comp-limple-sets, comp-limple-assignments)
(comp-limple-branches, comp-limple-ops)
(comp-limple-lock-keywords, comp-log-buffer-name, comp-log)
(native-comp-limple-mode, comp-log-to-buffer)
(comp-ensure-native-compiler, comp-trampoline-filename)
(comp-eln-load-path-eff): Move here
* lisp/emacs-lisp/comp-run.el (comp-common): Require.
* lisp/emacs-lisp/comp.el (comp-common): Require.
* admin/MAINTAINERS: Add comp-common.el
* lisp/Makefile.in (COMPILE_FIRST): Likewise.
* src/Makefile.in (elnlisp): Likewise.
2023-11-09 12:34:26 +01:00
Andrea Corallo
e6a955d242 comp: split code in comp-run.el
* lisp/emacs-lisp/comp-run.el : New file.
(comp-run)
(native-comp-jit-compilation-deny-list)
(native-comp-async-jobs-number)
(native-comp-async-report-warnings-errors)
(native-comp-always-compile)
(native-comp-async-cu-done-functions)
(native-comp-async-all-done-hook)
(native-comp-async-env-modifier-form)
(native-comp-async-query-on-exit, native-comp-verbose)
(comp-log-buffer-name, comp-async-buffer-name, comp-no-spawn)
(comp-async-compilations, native-comp-limple-mode)
(comp-ensure-native-compiler, native-compile-async-skip-p)
(comp-files-queue, comp-async-compilations, comp-async-runnings)
(comp-num-cpus, comp-effective-async-max-jobs)
(comp-last-scanned-async-output)
(comp-accept-and-process-async-output, comp-valid-source-re)
(comp-run-async-workers, native--compile-async)
(native-compile-async): Move these definitions here.
* lisp/Makefile.in (COMPILE_FIRST): Update.
* src/Makefile.in (elnlisp): Likewise.
* admin/MAINTAINERS: Likewise.
2023-11-09 11:06:06 +01:00
Po Lu
21f3670526 Guarantee files are auto-saved when Emacs is terminated by Android
* java/org/gnu/emacs/EmacsNative.java (shutDownEmacs):

* java/org/gnu/emacs/EmacsService.java (onDestroy): New
function.  When invoked, call shut_down_emacs and await its
completion.

* src/android.c (android_shut_down_emacs, shutDownEmacs): New
functions.
2023-11-09 10:12:24 +08:00
Po Lu
c6c5bba06f Implement more Android text editing controls
* lisp/term/android-win.el (android-deactivate-mark-command):
New command.
(select-all, start-selecting-text, stop-selecting-text): Arrange
for commands manipulating the region to be executed when these
keys are registered.

* src/android.c (android_get_keysym_name): Return the keysym
name of each of the new keysyms introduced.

* src/androidterm.c (performContextMenuAction): Save special
keysyms into key events for the selectAll, startSelectingText
and stopSelectingText actions.
2023-11-05 10:42:01 +08:00
Eli Zaretskii
5ee66620fd Remove unnecessary assertion added 2 days ago
* src/xdisp.c (get_glyph_face_and_encoding): Remove unnecessary
assertion.  It triggers, for no good reason, when running the
recipe of bug#66922 and typing C-p in the *Warnings* buffer after
the recipe finishes, because the glyph passed to this function is
a STRETCH_GLYPH, not a CHAR_GLYPH.
2023-11-04 09:33:33 +02:00
Po Lu
9867be2f6c Round underline position and thickness
* src/sfntfont.c (sfntfont_open): Round underline thickness
instead of truncating it, as is proper according to several
inquiries.
2023-11-03 15:20:04 +08:00
Po Lu
e06e61f456 Avoid moving point while analyzing text conversion
* lisp/simple.el (analyze-text-conversion): If neither calling
p-s-i-h nor calling p-t-c-h yields a change to point, return it
to its location before analyze-text-conversion was called.

* src/keyboard.c (kbd_buffer_get_event): See that text
conversion events are uniformly delivered prior to keyboard
events arriving in unison.
2023-11-03 11:34:40 +08:00
Po Lu
dbcb4cedd0 Properly compute overhangs for overstruck text
* src/xdisp.c (get_glyph_face_and_encoding): Account for
non-character glyphs by not attempting to translate them to
characters.
(gui_get_glyph_overhangs, gui_produce_glyphs): If the face is
overstruck, increase the right side bearing by 1 pixel.
2023-11-02 13:18:37 +08:00
Mattias Engdegård
8160485953 Non-recursive marking of buffer-local variables
* src/alloc.c (mark_localized_symbol): Inline into...
(process_mark_stack): ...this code and do don't use recursion.
2023-11-01 16:07:20 +01:00
Po Lu
a61cc138ed Prevent errors when generating events above menu bar windows
* src/keyboard.c (make_lispy_position): Pass false to w_f_c,
for the subsequent code is not prepared to encounter menu bar
windows.
2023-11-01 11:15:48 +08:00
Po Lu
090ac50d79 Don't round underline metrics
* src/sfntfont.c (sfntfont_open): Don't round underline position
or thickness, much as the other font drivers don't either.
2023-10-31 21:04:11 +08:00
Po Lu
d3b0162b80 Extract underline positions from PostScript metrics tables
* src/sfntfont.c (struct sfnt_font_desc): Introduce fields where
the font's underline position is recorded.
(sfnt_enum_font_1): Compute the underline position with
information in the post table whenever it exists.
(sfntfont_open): Scale the recorded position and save it into
the font object.
2023-10-31 18:42:15 +08:00
Po Lu
ecc8870981 Ascertain font spacing from post table if present
* src/sfnt.c (sfnt_table_names): Introduce name of post table.
(sfnt_read_post_table): New function.
(main): New tests.

* src/sfnt.h (struct sfnt_post_table): New struct.

* src/sfntfont.c (sfnt_enum_font_1): Read post table, and set
spacing from its is_fixed_pitch value.
(sfntfont_list_1): Compare spacing between both fonts if
supplied in the font spec.
(sfntfont_open): Set FONT_FILE_INDEX as well as
FONT_FULLNAME_INDEX.
2023-10-30 15:33:27 +08:00
Spencer Baugh
5c8fc0b059 Add 'case-symbols-as-words' to configure symbol case behavior
In some programming languages and styles, a symbol (or every
symbol in a sequence of symbols) might be capitalized, but the
individual words making up the symbol should never be capitalized.

For example, in OCaml, type names Look_like_this and variable names
look_like_this, but it is basically never correct for something to
Look_Like_This.  And one might have "aa_bb cc_dd ee_ff" or "Aa_bb
Cc_dd Ee_ff", but never "Aa_Bb Cc_Dd Ee_Ff".

To support this, the new variable 'case-symbols-as-words' causes
symbol constituents to be treated as part of words only for case
operations.

* src/casefiddle.c (case_ch_is_word): New function.
(case_character_impl, case_character): Use 'case_ch_is_word'.
(syms_of_casefiddle): Define 'case-symbols-as-words'.
* src/search.c (Freplace_match): Use 'case-symbols-as-words'
when calculating case pattern.
* test/src/casefiddle-tests.el (casefiddle-tests--check-syms)
(casefiddle-case-symbols-as-words): Test 'case-symbols-as-words'.
* etc/NEWS: Announce 'case-symbols-as-words'.
* doc/lispref/strings.texi (Case Conversion): Document
'case-symbols-as-words'.
(Bug#66614)
2023-10-29 13:32:43 +02:00
Manuel Giraud
27ccf2230b Set non-text mouse cursor on menu bar
* src/xdisp.c (note_mouse_highlight): Set non-text mouse cursor on
menu bar.
2023-10-29 18:18:52 +08:00
Po Lu
59a3edc355 Avert a crash and file descriptor leak in yank-media
* java/org/gnu/emacs/EmacsNative.java (close): New declaration.

* java/org/gnu/emacs/EmacsSdk11Clipboard.java
(getClipboardData): Catch SecurityException and guarantee file
descriptors are closed even if exceptions arise.

* src/android.c (dup): Export another function.
2023-10-29 12:59:45 +08:00
Eli Zaretskii
e81e625ab8 Merge from origin/emacs-29
aa253c533d ; Fix broken links to gmane.org
cc3e436c82 Change news.gmane.org to news.gmane.io
297fe945c5 Fix minor defcustom issues in Gnus (Bug#66715)
3beb5f5e24 ; * doc/misc/gnus.texi: Fix unmatched quote in gnus doc. ...
85d08d5788 Minor connection-local variables fixes
79d8328ca4 Make Dired honor `insert-directory-program´ with globs
43127294e1 Fix typo in url-privacy-level :type
380f8574ef * lisp/vc/log-view.el (log-view-mode-menu): Quote derived...
2023-10-28 05:06:21 -04:00
Manuel Giraud
6b229ffc6f Support for menu bar in window_from_coordinates
* src/window.h:
* src/window.c (window_from_coordinates): In the no toolkit
build, add support for the menu bar window.  Add a new
'menu_bar_p' argument so the function's signature has changed.
All callers changed.

* src/androidterm.c (handle_one_android_event):
* src/haikuterm.c (haiku_read_socket):
* src/keyboard.c (make_lispy_position):
* src/nsterm.m ([EmacsView mouseDown:]):
* src/pgtkterm.c (button_event):
* src/w32term.c (w32_read_socket):
* src/xdisp.c (note_mouse_highlight):
* src/xterm.c (handle_one_xevent): Set menu_bar_p to true.
2023-10-28 13:28:07 +08:00
Po Lu
f0d42c5e47 Minor adjustments to Android drag and drop and content URIs
* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow)
<dndXPosition, dndYPosition>: New fields initialized to -1.
(onDragEvent): Remember the position of the previous event to
avoid sending duplicates.

* src/androidvfs.c (EMACS_PATH_MAX): New define.
(android_saf_tree_rename, android_saf_tree_opendir)
(android_name_file, android_fstatat, android_faccessat)
(android_fchmodat, android_readlinkat): Use EMACS_PATH_MAX where
SAF file names might be encountered.
2023-10-28 10:19:41 +08:00
Eli Zaretskii
c59c8db98a ; Another fix for profiler.c
* src/profiler.c: Reshuffle functions and declarations to compile
also when PROFILER_CPU_SUPPORT is not defined.  (Bug#66774)
2023-10-27 20:47:01 +03:00
Eli Zaretskii
ee848be84c Fix compilation error in profiler.c
* src/profiler.c (memory): Declare outside of the
PROFILER_CPU_SUPPORT conditional.  (Bug#66774)
2023-10-27 18:26:27 +03:00
Eli Zaretskii
d81c59612f ; Fix style of error messages in pdumper.c
* src/pdumper.c (dump_buffer, dump_do_dump_relocation)
(dump_native_comp_unit): Make the style of error messages more
consistent.
2023-10-27 15:37:34 +03:00
Ihor Radchenko
8c9e544501 * src/pdumper.c (dump_buffer): Print message when aborting (bug#66743)
When the buffer contains overlays, it cannot be dumped.  Print a
clear message describing the reason, instead of just aborting.
2023-10-27 15:26:27 +03:00
Po Lu
bbd4385a63 Substitute eassert for assert throughout Android code
* src/android.c (android_init_emacs_service)
(android_init_emacs_pixmap, android_init_graphics_point)
(android_init_emacs_drawable, android_init_emacs_window)
(android_init_emacs_cursor, android_destroy_handle)
(android_create_window, android_init_android_rect_class)
(android_init_emacs_gc_class, android_begin_query):

* src/androidselect.c (android_init_emacs_clipboard)
(android_init_emacs_desktop_notification):

* src/androidterm.c (getExtractedText)
(android_get_surrounding_text_internal):

* src/androidvfs.c (android_vfs_init): Replace assert with
eassert.
2023-10-27 18:44:15 +08:00
Ulrich Müller
74330c0b96 ; Fix spelling of my name in all ChangeLog files 2023-10-25 15:20:46 +02:00
Po Lu
eff1313c6b Correct computation of intermediate axis coordinates
* src/sfnt.c (sfnt_compute_tuple_scale, sfnt_vary_simple_glyph)
(sfnt_vary_compound_glyph): Correct typos involving
intermediate_end (or something of the like) being set to
intermediate_start.
2023-10-25 10:19:36 +08:00
Andrea Corallo
f7d88f4a04 Make eln files re-dumpable (bug#45103)
* lisp/loadup.el (load--bin-dest-dir, load--eln-dest-dir): New
variable.
(load--fixup-all-elns): New function.
* src/pdumper.c (Fdump_emacs_portable): Update to call
'load--fixup-all-elns'.
* src/print.c (print_vectorlike): Improve CU printing.
2023-10-24 19:57:34 +02:00
Stefan Kangas
aa253c533d ; Fix broken links to gmane.org 2023-10-24 09:44:01 +02:00
Mattias Engdegård
48e7f5493e Improved eval documentation
Prompted by Michael Heerdegen.

* src/eval.c (Feval):
* doc/lispref/eval.texi (Eval):
Be more precise about the LEXICAL argument.
2023-10-23 14:48:42 +02:00
Po Lu
2cb3dea72b Correctly register Num Lock keys under Haiku
* src/haiku_support.cc (DispatchMessage): If B_NUM_LOCK is set,
invert B_SHIFT_KEY; should it be subsequently set, omit mapping
from raw_char.
2023-10-23 05:38:03 +00:00
Eli Zaretskii
b446294faa ; * src/keyboard.c (save_line_number_display_width): Fix last change. 2023-10-22 08:20:38 +03:00
Po Lu
6f87ee0e3a Enumerate default UVS glyphs
* src/sfnt.c (sfnt_compare_unicode_value_range)
(sfnt_is_character_default): New functions.
(sfnt_test_uvs): Print and verify the default UVS table.

* src/sfnt.h: Update prototypes.

* src/sfntfont.c (sfntfont_get_variation_glyphs): Index the cmap
with the default glyph, and insert it within VARIATIONS if
character is present within a selector record's default UVS
table.
2023-10-22 09:06:28 +08:00
Gerd Möllmann
5e546abf7a ; Fix a compilation warning 2023-10-21 19:55:25 +02:00
Eli Zaretskii
52f25b791e Merge from origin/emacs-29
ab9d6482e3 ; Update ChangeLog.4 and etc/AUTHORS.
d9e1605122 Correctly register focus events concomitant with alpha ch...
194e219825 * doc/man/emacsclient.1: Add missing options.
2023-10-21 08:06:07 -04:00
Eli Zaretskii
1b2083c2f3 ; * src/keyboard.c (line_number_mode_hscroll): Fix last change. 2023-10-21 15:03:22 +03:00
Eli Zaretskii
2fb4108ab7 Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs 2023-10-21 14:34:28 +03:00
Po Lu
e367d1862d ; * src/sfnt.c: Refine doc of variation selectors and GX fonts. 2023-10-21 18:58:13 +08:00
Eli Zaretskii
e57b19b400 Fix mouse clicks on links under 'global-display-line-numbers-mode'
* src/indent.c (line_number_display_width): No longer static.
* src/lisp.h (line_number_display_width): Add prototype.
* src/keyboard.c (save_line_number_display_width)
(line_number_mode_hscroll): New functions.
(make_lispy_event): Call 'save_line_number_display_width' and
'line_number_mode_hscroll' to avoid interpreting up-event as drag
event when redisplay scrolls the text horizontally between the
down- and up-event to account for the changed width of the
line-number display.  (Bug#66655)
2023-10-21 13:53:21 +03:00
Stefan Monnier
696411ab8a (sleep-for): Make the millisec argument obsolete
* lisp/subr.el (sleep-for): Set new advertized calling convention.
* src/dispnew.c (Fsleep_for): Adjust docstring.
* doc/lispref/commands.texi (Waiting): Adjust doc.
2023-10-20 18:59:51 -04:00
Gerd Möllmann
1038e48038 Gud LLDB completions (bug#66604)
* etc/emacs_lldb.py: Remove xcomplete.
* lisp/progmodes/gud.el: Implement lldb command completions.
* src/.lldbinit: Remove settings done in Gud.
2023-10-18 20:51:22 +02:00
Po Lu
06fc5c2417 Correctly bisect format 12 and 8 cmap tables
* src/sfnt.c (sfnt_bsearch_above): Cease returning the last
element if it is ordered below the key itself.
(sfnt_lookup_glyph_8, sfnt_lookup_glyph_12): Verify whether the
group returned is NULL.
2023-10-18 13:52:19 +08:00
Po Lu
516b490bb4 Mollify compiler under Android builds without mmap
* src/sfntfont.c (sfnt_close_tables, sfnt_open_tables)
[!HAVE_MMAP]: Do not declare rc for munmap or mmap.
2023-10-18 09:09:47 +08:00
Gerd Möllmann
40c9e9d2e6 Gud lldb support (bug#66575)
* lisp/progmodes/gud.el (lldb): New command.
* etc/NEWS: Mention M-x lldb.
* src/.lldbinit: Show no souece lines on stop.
* doc/emacs/building.texi: Mention LLDB.
2023-10-17 19:14:59 +02:00
Po Lu
d9e1605122 Correctly register focus events concomitant with alpha changes
* src/xterm.c (x_frame_highlight, x_frame_unhighlight): Skip
changing the frame alpha when the frame is not eligible for
focus state-specific alpha values; otherwise, the alpha might be
reset by the time a alpha change wrought by a focus change
arrives, impeding handle_one_xevent from subsequently restoring
the initial value.  (bug#66398)
2023-10-17 08:33:25 +08:00
Po Lu
36656ff70e Properly initialize argment list supplied to android_init_emacs
* src/android.c (initEmacs): NULL-terminate c_argv.
2023-10-16 09:00:45 +08:00
Gerd Möllmann
98748aa6e6 ; New command alias xprint for LLDB 2023-10-15 09:40:24 +02:00
Po Lu
93104cff53 Correctly receive files through Android DND
* java/org/gnu/emacs/EmacsService.java (getUsefulContentResolver)
(getContentResolverContext): New functions which return a
content resolver from an EmacsActivity, if at all possible.
(openContentUri, checkContentUri): Probe or open URIs through
such content resolvers.  Probe URIs by opening them if merely
testing permissions fails, for DND URIs do not make
checkCallingUriPermission return true.

* java/org/gnu/emacs/EmacsWindow.java (onDragEvent): Address
potential crash.

* src/androidvfs.c (android_check_content_access): Circumvent
JNI dynamic method dispatch.
(android_authority_name): Guarantee NAME is never a directory.
2023-10-15 13:11:37 +08:00
Po Lu
03f5a06a05 Implement multi-window drag-and-drop under Android
* java/org/gnu/emacs/EmacsNative.java (sendDndDrag, sendDndUri)
(sendDndText): Declare new event-sending functions.

* java/org/gnu/emacs/EmacsView.java (onDragEvent): New function.

* java/org/gnu/emacs/EmacsWindow.java (onDragEvent): New
function; respond to each drag and drop event, request
permissions if necessary and transfer dropped data to Lisp.

* lisp/dnd.el (dnd-unescape-file-uris): New variable.
(dnd-get-local-file-name): If that variable is nil, refrain from
unescaping URLs provided.

* lisp/term/android-win.el (android-handle-dnd-event): New
function.
(special-event-map): Bind drag-n-drop-event.

* src/android.c (sendDndDrag, sendDndUri, sendDndText): New
functions.

* src/androidgui.h (enum android_event_type): New event types
ANDROID_DND_DRAG_EVENT, ANDROID_DND_URI_EVENT,
ANDROID_DND_TEXT_EVENT.
(struct android_dnd_event): New structure.
(union android_event) <dnd>: New field.

* src/androidterm.c (handle_one_android_event)
<ANDROID_DND_..._EVENT>: Generate drag-n-drop events for each
of these types.
(syms_of_androidterm) <Quri, Qtext>: New defsyms.
2023-10-14 10:15:42 +08:00