1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-07 06:22:32 -08:00
Commit graph

49646 commits

Author SHA1 Message Date
Po Lu
2d8881d526 Fix typo incurring leaks of face structures
* src/xfaces.c (free_realized_face): Always free realized face
structures, and avoid sending X requests when the display is not
available, not when it is.
2024-06-29 20:02:54 +08:00
Ken Brown
fb15affde8 Avoid compiler warnings in the Cygwin-w32 build
* src/w32fns.c [DEFAULT_IMAGE_BASE]: Don't define on Cygwin.
* src/cygw32.h (w32_get_resource): Add prototype.  (Bug#71786)
2024-06-26 15:58:35 -04:00
Po Lu
8b1841021c Avert crash in store_mode_line_string on Android 5.0 and earlier
* src/xdisp.c (store_mode_line_string)
[__ANDROID_API__ < 22]: Call strlen on STRING if the limit
would otherwise be SIZE_MAX, or if the address of the string
is within PRECISION bytes of UINTPTR_MAX, in which case it
cannot possibly be larger than PRECISION.
2024-06-26 12:12:20 +08:00
Ken Brown
e7c85f9235 Use HarfBuzz in Cygwin-w32 build
* src/w32uniscribe.c (syms_of_w32uniscribe_for_pdumper) [CYGWIN]:
Use cygharfbuzz-0.dll as HarfBuzz DLL name instead of
libharfbuzz-0.dll. (Bug#71766)
2024-06-25 11:30:08 -04:00
Eli Zaretskii
8e3e206bd3 ; * src/buffer.c (syms_of_buffer) <mode-line-format>: ASCIIfy. 2024-06-25 16:42:47 +03:00
Po Lu
1b4c562721 Fix latent side-effects of respecting field boundaries in text conversion
* src/textconv.c (textconv_query, get_extracted_text)
(get_surrounding_text): Restore selected window in addition to
excursion.
(locate_and_save_position_in_field): Restore excursion lest the
current buffer differ from the selected window's contents, to
prevent redisplay from clobbering the current buffer when called
while the current buffer is at variance with the selected
window's contents, as seen with dired-other-window.
2024-06-25 11:37:09 +08:00
Po Lu
73a58329a6 Fix omission of updates to child frames on Android
* java/org/gnu/emacs/EmacsView.java (onAttachedFromWindow):
Force a layout cycle rather than report exposure immediately.
(prepareForLayout): Delete function.

* java/org/gnu/emacs/EmacsWindow.java (mapWindow): Remove
redundant calls to prepareForLayout.

* src/androidterm.c (handle_one_android_event): Do not swap
buffers when exposure is registered by a frame only partially
updated.
2024-06-24 12:04:05 +08:00
Stefan Kangas
fb11294d41 ; Fix typos 2024-06-23 16:40:06 +02:00
Po Lu
60475a73d1 Disable Ffile_system_info for Android special directories
* src/fileio.c (Ffile_system_info): Return Qnil if FILENAME
refers to a special directory.
2024-06-23 16:43:35 +08:00
Po Lu
cb7be6035e Fix compilation on prerelease versions of Haiku
* src/kqueue.c (Fkqueue_add_watch): Don't specify EV_ENABLE
unless it is defined.
2024-06-23 12:49:45 +08:00
Paul Eggert
2b848a4e50 Fix FIXME in comment
* src/timefns.c (decode_float_time): Explain why the code
can use large precision here, removing a FIXME by updating
the containing comment.
2024-06-22 20:42:55 -04:00
Eli Zaretskii
150e2b979c ; * src/xfns.c (unwind_create_frame): Add missing definition. 2024-06-22 15:14:19 +03:00
Po Lu
e7123edfe7 ; * src/keyboard.c (read_char): Typo in comment. 2024-06-21 15:13:03 +08:00
Po Lu
0ade6348f9 Fix execution of tool-bar commands read within minibuffer-error-handler
* src/keyboard.c (read_char): Arrange that the original event be
recorded when a posn is promoted to a prefix key and an END_TIME
is suppressing additions to this_command_keys.
2024-06-21 15:12:28 +08:00
Stefan Kangas
6c85b03111 Fix misspelled function name in comp.c
* src/comp.c (retrieve_block): Rename from 'retrive_block'.
Update all callers.
2024-06-20 16:01:33 +02:00
Po Lu
199fcbe2d3 Fix NS build
* src/nsfns.m (Fx_create_frame, ns_create_tip_frame): Remove
references to deleted variable.  (bug#71638)
2024-06-20 21:31:25 +08:00
Eli Zaretskii
74af691b90 Fix last change
* src/xdisp.c (handle_line_prefix): Set the 'align_visually_p'
only after pushing the iterator.
(pop_it): Reset the 'align_visually_p' flag.  (Bug#71605)
2024-06-20 13:42:04 +03:00
Eli Zaretskii
775aeabcfb Fix use of ':align-to' in 'wrap-prefix'
* src/dispextern.h (struct it): New flag 'align_visually_p'.
* src/xdisp.c (handle_line_prefix): Set the 'align_visually_p'
flag for 'wrap-prefix'.
(produce_stretch_glyph): If 'align_visually_p' flag is set, count
the :align-to offset from the beginning of the screen line, not
from BOL.  (Bug#71605)

* doc/lispref/display.texi (Truncation, Specified Space): Document
the special handling of ':align-to' in 'wrap-prefix'.
2024-06-20 12:52:06 +03:00
Po Lu
b8affdb7b5 * src/frame.c (gui_set_font): Reference image cache after reassignment. 2024-06-20 17:20:23 +08:00
Po Lu
e6169e9de1 ; * src/frame.c (make_frame): Typo. 2024-06-20 17:03:54 +08:00
Po Lu
cebca072c3 Correctly cache images when frames vary in their font metrics
* src/alloc.c (mark_frame): Mark this frame's image cache, if it
exist.
(mark_terminals): Cease marking T->image_cache.

* src/androidfns.c (unwind_create_frame, Fx_create_frame)
(android_create_tip_frame):

* src/haikufns.c (unwind_create_frame, haiku_create_frame)
(haiku_create_tip_frame):

* src/nsfns.m (unwind_create_frame):

* src/pgtkfns.c (unwind_create_frame, Fx_create_frame)
(x_create_tip_frame):

* src/xfns.c (unwind_create_frame, Fx_create_frame)
(x_create_tip_frame):

* src/w32fns.c (unwind_create_frame, Fx_create_frame)
(w32_create_tip_frame): Remove adjustments of the frame image
cache's reference count rendered redundant by the assignment of
image caches to individual frames rather than terminals.

* src/dispextern.h (struct image_cache) <scaling_col_width>: New
field.

* src/frame.c (gui_set_font): In lieu of clearing F's image
cache unconditionally, establish whether the column width as
considered by compute_image_size has changed, and if so, adjust
or reassign the frame's image cache.
(make_frame): Clear F->image_cache.

* src/frame.h (struct frame) <image_cache>: New field.
(FRAME_IMAGE_CACHE): Return F->image_cache.

* src/image.c (make_image_cache): Clear C->scaling_col_width.
(cache_image): Adjust to new means of assigning image caches to
frames.

* src/termhooks.h (struct terminal) <image_cache>: Delete field.

* src/xfaces.c (init_frame_faces): Do image cache assignment
with all new frames.
2024-06-20 17:03:36 +08:00
Eli Zaretskii
c75aa8e0f6 Avoid compilation warnings
* src/xwidget.c (Fxwidget_perform_lispy_event): Avoid compiler
warnings.  (Bug#71638)
2024-06-19 14:30:17 +03:00
Po Lu
db18613c96 Don't follow symlinks in returning directory attributes of /
* src/androidvfs.c (struct android_vops) <stat>: New argument
for flags.
(android_unix_stat): Implement in terms of fstatat, not stat,
and provide flags to the same.
(android_afs_stat, android_content_stat, android_authority_stat)
(android_saf_root_stat, android_saf_tree_stat)
(android_saf_new_stat, android_fstatat): Adjust to match.
2024-06-19 16:41:59 +08:00
Po Lu
5fceb53856 Avoid races between the tooltip and compositor on X and Android
* java/org/gnu/emacs/EmacsView.java (onLayout): Don't send
exposure events when the window is still to be attached.

* src/androidfns.c (Fx_show_tip):

* src/xfns.c (Fx_show_tip): Block async input around initial
frame update.
2024-06-19 10:57:07 +08:00
Po Lu
6a162be6a8 Correct resolution of non-virtual directory names on Android
* src/androidvfs.c (android_vfs_canonicalize_name): Correct
return value in cases of underflowing the directory stack.
(android_unix_name): Reset vnode operations vector of copied
vnodes to their standard value, and exclude virtual directories
from subdirectories of the root directory's parent directory.
(android_root_name): Adjust to match.
2024-06-18 14:41:26 +08:00
Po Lu
82f0014273 Reinforce bitmap reconfiguration on Android
* java/org/gnu/emacs/EmacsView.java (EmacsView) <unswapped>: New
field in which to record whether the back buffer has received
contents beyond those present at the last buffer swap.
<dimensionsLock>: Delete field.
(onAttachedToWindow, onLayout, handleDirtyBitmap)
(prepareForLayout): Rather, synchronize window dimensions with
the view.
(getCanvas, getBitmap): Do not reconfigure the back buffer
bitmap if such outstanding data exists.
(postSwapBuffers): New function.
(swapBuffers): If such outstanding data exists and the back
bufferis pending reconfiguration, recreate the back buffer and
report exposure.

* src/androidterm.c (handle_one_android_event): Fix indentation.
2024-06-17 17:45:48 +08:00
Stefan Kangas
c0eefebabf ; Fix typos 2024-06-16 22:38:26 +02:00
Robert Pluim
275a558241 Fix clipboard request on macOS for yank-media
'yank-media' makes a request with 'CLIPBOARD and 'TARGETS, which on
other platforms returns the type(s) of the current selection, but on
macOS returned the selection itself.  Make it return the types instead.

This fixes (Bug#71377).

* src/nsselect.m (ns_get_local_selection): Return nil when called with
QCLIPBOARD and QTARGETS, so that 'ns_get_foreign_selection' is called to
return the type(s) of the selection.
2024-06-16 14:23:37 +02:00
Po Lu
a39f6480ea Minor adjustments to battery.el on Android
* src/android.c (android_query_battery):

* java/org/gnu/emacs/EmacsService.java (queryBattery19)
(queryBattery): Reorder items in value for consistency with
Fandroid_query_battery.

* lisp/battery.el (battery-status-function): Select
battery-android only when android-query-battery is present.
(battery-android): Return temperature and correct values of
power source constants.
2024-06-16 15:28:54 +08:00
Eli Zaretskii
988203fe98 Fix electric-pair-mode when characters are bound to non-ASCII keys
* src/cmds.c (Fself_insert_command): Record the argument C in
'last-command-event'.  (Bug#71337)
2024-06-15 11:08:22 +03:00
Po Lu
25452986cb Send proper substitution character to Android IMEs
* src/androidterm.c (android_text_to_string): Substitute
REPLACEMENT CHARACTER for NULL in converting characters not
representable without surrogate pairs to UTF-16.
2024-06-15 10:04:07 +08:00
Eli Zaretskii
47746c1f37 ; * src/insdel.c (insert_from_gap_1): Update commentary. 2024-06-14 21:44:56 +03:00
Eli Zaretskii
0372ce5f60 ; Update comments in a recent commit
* src/process.c (read_and_insert_process_output):
* src/insdel.c (insert_from_gap):
* src/coding.h (struct coding_system): Improve comments (bug#71525).
2024-06-14 21:42:18 +03:00
Dmitry Gutov
a8d5c5fd87 "Insert before markers" in read_and_insert_process_output properly
* src/coding.c (setup_coding_system): Initialize it.
(produce_chars, encode_coding, decode_coding_gap):
Obey it in insert_from_gap calls.
(encode_string_utf_8, decode_string_utf_8): Update the other calls
to insert_from_gap to have one new argument (false).

* src/coding.h: New field insert_before_markers.

* src/decompress.c (Fzlib_decompress_region): Here too.

* src/insdel.c (insert_from_gap):
Accept new argument BEFORE_MARKERS (bug#71525) and pass it through
to adjust_markers_for_insert.

* src/lisp.h: Update prototype.

* src/process.c (read_and_insert_process_output):
Set process_coding->insert_before_markers instead of calling
adjust_markers_for_insert.
2024-06-14 19:50:59 +03:00
Po Lu
a458dc5dc8 Restore file's original name after a failed rename_replace on Windows 9X
* src/w32.c (sys_rename_replace): If the rename operation fails
and an intermediate name was generated and applied to the input
file, restore the original.
2024-06-14 10:45:02 +08:00
Po Lu
4124b98509 Enable compiling Emacs with implicit Make rules suppressed
* lib/Makefile.in (.SUFFIXES):

* lwlib/Makefile.in (.SUFFIXES):

* oldXMenu/Makefile.in (.SUFFIXES):

* src/Makefile.in (.SUFFIXES): Register .c as a default suffix,
for this list is emptied when `-r' is provided to Make.
2024-06-14 10:44:31 +08:00
Po Lu
14f7506c99 ; * src/androidterm.c (android_term_init): Typo. 2024-06-13 20:12:03 +08:00
Eli Zaretskii
72e6b05221 ; * src/w32proc.c (sys_kill): Handle negative PID when sig == 0. 2024-06-13 11:03:52 +03:00
Eli Zaretskii
0007231a78 Fix removal of file locks on MS-Windows 9X
A new Windows-specific function for validating process ID
is introduced that does TRT with possibly negative PID
values returned by 'getpid' on Windows 9X and also with
values larger than INT_MAX, since PID on Windows is
actually an unsigned 32-bit value.
* src/w32proc.c (w32_valid_process_id): New function.
* src/w32common.h (VALID_PROCESS_ID): Define for WINDOWSNT.
* src/filelock.c [WINDOWSNT]: Include w32common.h.  (Bug#71477)
2024-06-13 10:24:21 +03:00
Po Lu
94bcd7964b Correctly define `select' binding on Android
* lisp/term/android-win.el (input-decode-map): Cease binding
select in the initial frame's input-decode-map.

* src/androidterm.c (android_term_init): Binding select in the
freshly created kboard.
(syms_of_androidterm) <Qselect, Qreturn>: New symbols.
2024-06-13 10:46:59 +08:00
Paul Eggert
ac14d56a4d Start of a fix for bug#71477
* src/filelock.c (integer_prefixed): New static function.
(VALID_PROCESS_ID): New macro.
(current_lock_owner): Use them to allow negative process IDs
on some Microsoft platforms.
2024-06-12 10:51:13 -07:00
Po Lu
02e70821b3 Restore functionality on Android 2.2
* java/Makefile.in (install_temp): Do not compress
directory-tree and generate such files in a special format that
stores file sizes.

* lib-src/asset-directory-tool.c (struct directory_tree): New
field st_size.
(need_file_size): New variable.
(main_1, main_2, main): Write file sizes before sibling offsets
if `--api-8' is specified.

* src/android-asset.h (struct android_asset_manager): New field
open.
(struct android_asset): New field name.
(AAssetManager_fromJava): Load AssetManager#open.
(AAssetManager_open): If a directory tree has already been
loaded, search for a matching asset and load its size thence, to
avoid the requirement of an AssetFileDescriptor.
(AAsset_close): Don't assume asset->fd exists.  Release
asset->name.
(AAsset_getLength): Likewise.
(android_asset_create_stream): If asset->name exists, call
AssetManager#open, in order to open compressed files.

* src/androidvfs.c (OLD_ANDROID_ASSETS): Define to 1 on API 8.
(android_extract_long, android_scan_directory_tree): Mark
arguments as const.  Adjust offsets when OLD_ANDROID_ASSETS.
(android_is_directory, android_init_assets, android_afs_readdir):
Likewise.

* src/lread.c (lread_fstat): Define to sys_fstat, not fstat.
2024-06-12 16:44:21 +08:00
Dmitry Gutov
3199b8584e read_and_insert_process_output: Insert before markers
* src/insdel.c (adjust_markers_for_insert): Make non-static.

* src/lisp.h: Add declaration for it.

* src/process.c (read_and_insert_process_output): Use it here.
And also call insert_1_both with BEFORE_MARKERS=t, for
compatibility with internal-default-process-filter (bug#66020).
2024-06-11 21:03:19 +03:00
Eli Zaretskii
4b902f5031 ; * src/emacs.c (Fkill_emacs): Doc fix. 2024-06-11 15:39:51 +03:00
Po Lu
cc30758eed Enable support for color fonts in recent releases of Xft
* etc/PROBLEMS (Some fonts are detected..): Document that Xft
2.3.6 should have resolved this issue.

* src/ftfont.c (ftfont_spec_pattern, ftfont_list): Disable
inhibition of color fonts on Xft 2.3.6 and subsequent versions.
2024-06-11 17:00:00 +08:00
Eli Zaretskii
c0aa201ade ; Revert "Provide for negative PIDs on MS Windows"
This reverts commit 9e96fbfd85.
Please don't install any changes in this area without discussion.
Bug#71477.
2024-06-11 10:38:58 +03:00
Eli Zaretskii
57c492e1c0 ; Revert "* src/filelock.c (pid_strtoimax) [!WINDOWSNT]: Define correctly."
This reverts commit f33806dd66.
Please don't install changes in this area without discussion.
2024-06-11 10:38:11 +03:00
Eli Zaretskii
a95f9e5bc6 ; * src/process.c (read_and_dispose_of_process_output): Fix style. 2024-06-11 10:37:31 +03:00
Dmitry Gutov
bac8a70f45 fast-read-process-output: Make safer
* src/process.c (read_process_output): Move the call to
'read_and_insert_process_output' from here.
(read_and_dispose_of_process_output): To here (bug#66020).  So
that any Lisp code invoked through modification hook from the
former function also benefit from safety guards like
running_asynch_code, saved match data, inhibit_quot, etc.
2024-06-11 05:54:57 +03:00
Dmitry Gutov
d9890bb870 read_process_output_set_last_coding_system: Extract, reuse
* src/process.c (read_process_output_set_last_coding_system):
New function, extracted from read_and_dispose_of_process_output.
(read_and_dispose_of_process_output): Update accordingly.
(read_and_insert_process_output): Use it here instead of just
transferring carryover (bug#66020, also mentioned in bug#71452).
2024-06-11 05:37:45 +03:00