Commit graph

48693 commits

Author SHA1 Message Date
Alan Third
66a3bb36f9 Fix percentage sizes in SVG display (bug#64908)
* src/image.c (svg_css_length_to_pixels): Make percent units always
return zero and handle font size based units better.
(svg_load_image): Don't rely on the width and height values from the
SVG actually having any useful data, even if they're explicitly set.
2023-08-08 22:14:45 +01:00
Mattias Engdegård
516736cfa6 Better error for missing or bad :name arg in make-process etc
Improve on the famously bad error message given when the :name keyword
parameter is missing or of the wrong type in calls to make-process,
make-pipe-process and make-network-process (bug#65030).

* src/process.c (get_required_string_keyword_param): New function.
(Fmake_process, Fmake_pipe_process, Fmake_network_process): Use it.
2023-08-08 18:23:00 +02:00
Basil L. Contovounesios
d2f29bd3ce ; Update pdumper dump_buffer hash (bug#65146). 2023-08-08 14:57:34 +02:00
Po Lu
2b67609c34 Repair test failures stemming from Android merge
* lisp/kmacro.el (kmacro-step-edit-query)
(kmacro-step-edit-pre-command): Use `dummy-event' instead of
[nil] to continue a kbd macro; this is because nil now has a
function key map.
* src/androidfns.c (Fx_hide_tip): Allow calling this as a stub.
* src/fileio.c (Finsert_file_contents): In adherence to the
documentation, forbid supplying a BEG offset even for seekable
files, i.e. /dev/urandom on Linux kernel based systems.
2023-08-08 20:20:39 +08:00
Po Lu
eeda9eff1a ; * src/fileio.c (Ffile_selinux_context): Avoid unused variable. 2023-08-08 16:21:45 +08:00
Po Lu
440f017658 Avoid caching file status when they are about to change
* java/org/gnu/emacs/EmacsSafThread.java (EmacsSafThread)
(cacheFileStatus): New argument NO_CACHE.
(cacheDirectoryFromCursor, statDocument1):
* java/org/gnu/emacs/EmacsService.java (EmacsService)
(statDocument): Plumb that argument through each of these wrapper
functions.
* src/android.c (android_init_emacs_service): Adjust JNI
function signatures to agree with statDocument1.
* src/androidvfs.c (android_saf_stat): Plumb that argument
through here.
(android_saf_tree_stat, android_saf_file_open): And don't cache
file status if a write is imminent.
2023-08-08 16:17:10 +08:00
Po Lu
27113c22f7 Minor improvements to write-region heuristic
* src/androidvfs.c (android_saf_stat): Set STATB->st_dev.
(android_fstat): Likewise.
(NATIVE_NAME): Seek to start of file after truncation.
* src/fileio.c (write_region): Use stat instead of open+fstat
to obtain updated mtime.
2023-08-08 16:02:49 +08:00
Po Lu
27a57f4cca * src/androidvfs.c (android_saf_file_open): Improve commentary. 2023-08-08 14:05:43 +08:00
Po Lu
8cd1681c32 Merge remote-tracking branch 'savannah/master' into master-android-1 2023-08-08 13:39:45 +08:00
Po Lu
d35ead5bd8 Utilize more frequently supported file access modes
* java/org/gnu/emacs/EmacsSafThread.java (openDocument1): Use
plain r or w where possible, as the fileio stuff is now better
prepared for FIFOs.
(openDocument): New argument READ.
* java/org/gnu/emacs/EmacsService.java (openDocument): New
argument READ.
* src/android.c (android_init_emacs_service): Adjust
correspondingly.
* src/androidvfs.c (android_saf_file_open): Don't support
O_APPEND.  Pass read as well as trunc and write.
2023-08-08 13:39:16 +08:00
Po Lu
3fb2c174d3 Enable visiting FIFOs as files
* doc/lispref/files.texi (Reading from Files): Document new
`if-regular' value of REPLACE.

* etc/NEWS: Announce the new value.

* lisp/files.el (basic-save-buffer-2): Demote errors saving
backup files, since FIFOs cannot be copied.
(revert-buffer-insert-file-contents--default-function): Supply
`if-regular' instead of t as REPLACE.

* src/fileio.c (selinux_enabled_p): New function.
(Fcopy_file, Ffile_selinux_context, Fset_file_selinux_context):
Call that function to ascertain if SELinux applies to a file.
(read_non_regular): Don't assume `emacs_fd_read' always returns
int.
(Finsert_file_contents): If REPLACE is if-regular and FILENAME
is a special non-seekable file, fall back to erasing the buffer
before inserting the contents of that file.
(syms_of_fileio) <Qif_regular>: New symbol.
2023-08-08 13:37:00 +08:00
Paul Eggert
85b6c150c8 Fix some emacs_fopen confusion
Problem reported by Po Lu in:
https://lists.gnu.org/r/emacs-devel/2023-08/msg00195.html
* src/comp.c (comp_hash_source_file, Fcomp__release_ctxt):
* src/sysdep.c (get_up_time, procfs_ttyname, procfs_get_total_memory):
Be more systematic about using emacs_fclose on streams that were
opened with emacs_fopen or emacs_fdopen.  Do this even if not
Android, as this simplifies checking that it's done consistently.
* src/lisp.h (emacs_fclose): If it’s just fclose,
make it a macro rather than a function, to avoid confusing gcc
-Wmismatched-dealloc.
(emacs_fopen): Move decl here from sysstdio.h, because sysstdio.h
is included from non-Emacs executables and emacs_fopen is good
only inside Emacs.
* src/sysdep.c (emacs_fclose): Define as a function only if Android.
2023-08-07 21:26:36 -07:00
Paul Eggert
4a2367d2f0 Simplify lockfile name calculation
* src/filelock.c (get_boot_time):
Move ‘counter’ decl to simplify #ifdef nesting.
(lock_file_1): Refactor two snprintf calls into one.
Don’t assume INT_MAX < SIZE_MAX.
2023-08-07 13:59:44 -07:00
Paul Eggert
7cd8236d35 Pacify --enable-gcc-warnings with emacs_fdopen
* src/lisp.h (emacs_fdopen): Now ATTRIBUTE_MALLOC
ATTRIBUTE_DEALLOC (emacs_fclose, 1), to pacify gcc
-Wsuggest-attribute=malloc on non-Android platforms.
2023-08-07 09:19:42 -07:00
Po Lu
72a606bb27 Fix mouse face display bug on MS-DOS
* src/msdos.c (tty_draw_row_with_mouse_face): Tweak coordinates to
reflect the number of glyphs used within the margin area.
2023-08-07 21:14:53 +08:00
Eli Zaretskii
b7038d9b72 ; * src/fileio.c (internal_delete_file): Call internal_condition_case_1. 2023-08-07 14:07:43 +03:00
Po Lu
7fb0248a33 Port to the Android NDK r10b
* src/androidvfs.c (android_saf_stat, android_saf_file_open)
(android_fstat): Eschew accessing POSIX timespec fields in
struct stat, employing accessors supplied in Gnulib stat-time.h
in their place.
2023-08-07 13:01:56 +08:00
Po Lu
fb997c8a8c Repair hang in android_fdopen
* src/androidvfs.c (android_fdopen): Do not neglect to
update next when iterating through open_parcel_fds.
2023-08-07 10:18:49 +08:00
Po Lu
072a8a434e Merge remote-tracking branch 'origin/master' into feature/android 2023-08-07 07:56:44 +08:00
Paul Eggert
1cc20535f8 Stop using printf %n
* src/emacs.c (shut_down_emacs): Don’t use printf’s "%n" format.
Android, MS-Windows, and OpenBSD don’t support it, and it’s easy
enough to do its equivalent by hand.
2023-08-06 09:13:12 -07:00
Eli Zaretskii
400df210ce Fix last change of 'delete-file'
* src/fileio.c (Fdelete_file_internal): Expand file name here, as
all primitives must.
(internal_delete_file): Adjust to the fact that Fdelete_file was
renamed.

* lisp/files.el (delete-file): Don't expand-file-name here, as
the called primitives already do.  Fix typo in doc string.
2023-08-06 17:03:26 +03:00
Po Lu
7ffc5f86e4 Merge remote-tracking branch 'origin/master' into feature/android 2023-08-06 21:45:44 +08:00
Po Lu
7873369338 Update Android port
* java/org/gnu/emacs/EmacsNative.java: Declare ftruncate.

* java/org/gnu/emacs/EmacsSafThread.java (openDocument1): If
initially opening with rwt, verify the file descriptor is really
writable; if not, resort to rw and truncating the file descriptor
by hand instead.

* src/androidvfs.c (NATIVE_NAME (ftruncate)): New function.
Truncate file descriptor and return whether that was successful.
2023-08-06 21:45:29 +08:00
Eric S. Raymond
10a7615b5d Separate filename-deletion mechanism from policy.
src/fileio.c: (delete-file-internal) Renamed from delete-file,
              parallel to delete-directory-internal; policy
	      code moved to Lisp.
src/files.el: (delete-file) New function, holds policy logic.
              calls delete-file-internal.

This is a pure refactoring step, delete-file's behavior is
unchanged. But the C core is a little simpler now.
2023-08-06 09:31:39 -04:00
Po Lu
669a4b96c3 Update Android port
* src/androidvfs.c (android_saf_tree_chmod): Repair file access
permissions allowed within FLAGS.
2023-08-06 11:46:15 +08:00
Po Lu
2867f62484 Merge remote-tracking branch 'origin/master' into feature/android 2023-08-06 07:38:10 +08:00
Stefan Kangas
25641c3e88 Add crossref to set-default-file-modes docstring
* src/fileio.c (Fset_default_file_modes): Doc fix; add to the
docstring a cross-reference to with-file-modes.
2023-08-05 17:57:53 +02:00
Eli Zaretskii
a06a2950e1 Allow user control on char-width of "ambiguous" characters
* src/character.c (syms_of_character) <ambiguous-width-chars>: New
char-table.

* lisp/international/characters.el (ambiguous-width-chars): Fill
the table.
(update-cjk-ambiguous-char-widths): New function.
(cjk-ambiguous-chars-are-wide): New defcustom, uses
'update-cjk-ambiguous-char-widths' as its :set function.
(use-cjk-char-width-table): Obey 'cjk-ambiguous-chars-are-wide' by
adding another child char-table for ambiguous-width characters,
where the width is set according to the option.

* lisp/language/chinese.el ("Chinese-GB", "Chinese-BIG5")
("Chinese-CNS", "Chinese-EUC-TW", "Chinese-GBK"):
* lisp/language/japanese.el ("Japanese"):
* lisp/language/korean.el ("Korean"): Add new language-info slot
'cjk-locale-symbol'.

Bug#64420
2023-08-05 17:55:56 +03:00
Po Lu
a5bbc51f47 Merge remote-tracking branch 'origin/master' into feature/android 2023-08-05 09:06:04 +08:00
Po Lu
5ca25a1318 ; Last-minute updates to Android port
* lisp/electric.el:
* lisp/help-macro.el (make-help-screen):
* lisp/subr.el (read-char-choice-with-read-key):
* src/buffer.c (init_buffer_once):
* src/dispextern.h (No_Cursor):
* src/keyboard.c (read_char):
* src/process.c (Fprocess_send_eof): Fix commentary or unnecessary
whitespace changes.
2023-08-04 17:41:20 +08:00
Eli Zaretskii
dde3b9350e Merge from origin/emacs-29
0f183770c5 Fix byte-compiled files that use 'bind-key' from use-package
acfcf7f369 Fix "Paste from Kill Menu" in non X toolkit builds
04996b2124 Handle tabs in the SQL shown in the column listing
573fcf2712 Add new keyword to 'typescript-ts-mode'
db7d70d3ca ; Add commentary to 'describe-function's completion
2023-08-04 03:17:51 -04:00
Eli Zaretskii
acfcf7f369 Fix "Paste from Kill Menu" in non X toolkit builds
* src/keymap.c (possibly_translate_key_sequence): Don't signal an
error if 'key-valid-p' returns nil.  Suggested by Stefan Monnier
<monnier@iro.umontreal.ca>. (Bug#64927)
2023-08-04 09:36:45 +03:00
Po Lu
bfbdf4eb89 Optimize creation of multibyte menu items on Android
* src/androidvfs.c (android_verify_jni_string): Move to
android.c.
* src/android.c (android_verify_jni_string): New function.
(android_build_string): Forgo encoding menu text if TEXT is a
multibyte string that's also a valid JNI string.
* src/android.h: Update prototypes.
2023-08-04 14:29:55 +08:00
Po Lu
01849bf811 * src/fileio.c (check_vfs_filename): Revert earlier change. 2023-08-03 20:14:28 +08:00
Stefan Kangas
d005b2c89c Fix link to info node in prin1 docstring
* src/print.c (Fprin1): Fix linking to info node in docstring.

(cherry picked from commit 4b73edb8d1)
2023-08-03 10:33:02 +03:00
Po Lu
6d44d08e04 Isolate fchmodat within the Android VFS layer
* src/android.h: Update prototypes.
* src/androidvfs.c (unix_vfs_ops, android_unix_chmod, afs_vfs_ops)
(android_afs_chmod, content_vfs_ops, android_content_chmod)
(authority_vfs_ops, android_authority_chmod, saf_root_vfs_ops)
(android_saf_root_chmod, saf_tree_vfs_ops, android_saf_tree_chmod)
(saf_file_vfs_ops, saf_new_vfs_ops, android_saf_new_chmod)
(root_vfs_ops): Add `chmod' to the list of functions implemented
by each vnode.
(android_fchmodat): New function.
* src/fileio.c (Fset_file_modes): Use `emacs_fchmodat'.
* src/lisp.h:
* src/sysdep.c (emacs_fchmodat): Delegate to android_fchmodat on
Android.
2023-08-03 14:50:05 +08:00
Po Lu
91a7e9d83f Update Android port
* java/org/gnu/emacs/EmacsSafThread.java (CacheToplevel):
(EmacsSafThread):
(DocIdEntry):
(getCache):
(pruneCache):
(cacheDirectoryFromCursor):
(run):
(documentIdFromName1):
(statDocument1):
(openDocumentDirectory1):
(openDocument1): Introduce a file status cache and populate
it with files within directories as they are opened.
* java/org/gnu/emacs/EmacsService.java (createDocument):
(createDirectory):
(moveDocument): Invalidate the file status cache wherever
needed.
* src/fileio.c (check_vfs_filename):
(Fset_file_modes): Permit `set-file-modes' to silently fail
on asset and content files.
2023-08-03 10:41:40 +08:00
Po Lu
60dda3105c Merge remote-tracking branch 'origin/master' into feature/android 2023-08-03 08:25:47 +08:00
Stefan Kangas
0910230be6 ; Prefer HTTPS to HTTP in more links 2023-08-02 23:32:28 +02:00
Stefan Kangas
4b73edb8d1 Fix link to info node in prin1 docstring
* src/print.c (Fprin1): Fix linking to info node in docstring.
2023-08-02 21:48:18 +02:00
Po Lu
8ff8a7fd5c Fix reporting of key events containing SYM and META
* doc/emacs/android.texi (Android)::(What is Android?):
(Android Startup, Android File System, Android Environment)
(Android Windowing, Android Fonts, Android Troubleshooting):
Improve section titles.
(Android Windowing): Describe the relation between keyboard
modifiers reported by Android and those in key events.
* java/org/gnu/emacs/EmacsWindow.java (onKeyDown, onKeyUp):
Clear META_SYM_ON and META_META_MASK when retrieving ASCII
characters.
* src/androidgui.h: Add ANDROID_META_MASK.
* src/androidterm.c (android_android_to_emacs_modifiers)
(android_emacs_to_android_modifiers): Transform META to Alt, and
vice versa.
2023-08-02 09:09:53 +08:00
Po Lu
f705259987 Merge remote-tracking branch 'origin/master' into feature/android 2023-08-02 08:10:59 +08:00
Po Lu
e41349dd93 Update Android port
* doc/emacs/android.texi (Android File System): Describe how to
access real files named /assets or /contents if so required.
* java/org/gnu/emacs/EmacsService.java (validAuthority):
* src/android.c (android_init_emacs_service):
* src/android.h: New function.
* src/androidvfs.c (android_saf_valid_authority_p): New
function.  Wrap the Java function.
(android_saf_root_stat, android_saf_root_access): Don't return
success if no authority by vp->authority's name exists.
(android_saf_tree_from_name): Check validity of string data
before giving it to JNI.
2023-08-01 21:06:06 +08:00
Amritpal Singh
608a8757d9 Support files compressed by 'pigz'
* src/decompress.c (md5_gz_stream): Check 'stream.avail_in' as
well.  (Bug#63832)

Copyright-paperwork-exempt: yes
(cherry picked from commit 46b6d17505)
2023-08-01 13:23:04 +02:00
Po Lu
b022398b8f Micro-optimize PUSHW/PUSHB
* src/sfnt.c (CHECK_STACK_AVAILABLE): New macro.
(PUSH):
(PUSH_UNCHECKED): Always define to unchecked versions,
even if TEST.
(PUSH2_UNCHECKED): New macro.
(NPUSHB):
(NPUSHW):
(PUSHB):
(PUSHW): Check the number of remaining stack elements
once.
(stack_overflow_test_args): Expect zero stack arguments.
2023-08-01 14:54:30 +08:00
Po Lu
74d6604eaa Fix stipple support on PGTK
* src/image.c (image_create_pattern_from_pixbuf): Remove function.
(image_bitmap_to_cr_pattern): New function.
(image_create_bitmap_from_data):
(image_create_bitmap_from_file): Create patterns with the correct
mask values directly from bitmap data.  Also, don't rely on GDK
to read XPMs, as that format isn't supported anymore.
* src/pgtkterm.c (pgtk_bitmap_icon): Disable already nonfunctional
code.
(pgtk_display_x_warning): Wrap warning message.
* src/pgtkterm.h (struct pgtk_bitmap_record): Remove `img' field.
(bug#64969)
2023-08-01 10:34:33 +08:00
Po Lu
202ddc0137 ; * src/android.c (ANDROID_THROW): Remove unused macro. 2023-08-01 08:44:24 +08:00
Po Lu
deb8b933bc Merge remote-tracking branch 'origin/master' into feature/android 2023-08-01 08:31:14 +08:00
Eli Zaretskii
30bcd71476 Merge from origin/emacs-29
525d05c1b8 Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
29ef215711 ; * lisp/textmodes/paragraphs.el: Remove leftover comment.
80c9f491fc Update to Org 9.6.7-5-gd1d0c3
735f3700f6 ; * src/character.c (Fstring_width): Fix last change.
bf83fdba9e ; * src/character.c (Fstring_width, Fchar_width): Doc fixes.
1198cdb556 Merge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs ...
2b8796eea1 Fix rx wrong-code bug: ranges starting with ^
ba60070b81 Backport: Fix some tree-sitter :match regexps
092a2ecb08 ; * admin/make-tarball.txt: Update based on latest experi...
7b9e83d3cf Fix bug#64923
0002d4f316 Avoid spurious whitespace in the modeline of emacsclient ...
96d52f8944 Fix function help for advised aliases (bug#64797)
71419a60c3 Avoid crashes due to invalid 'mode-line-format'
b2cb6e8216 ; Better documentation of HOME on MS-Windows
54e98b5f9b ; Clarify documentation of 'server-after-make-frame-hook'
d13029cdcd Avoid crashes under 'which-key-mode'
cb1f7db249 ; Minor documentation fixes
4a687bcc20 Bump Emacs version
2023-07-31 11:11:23 -04:00
Eli Zaretskii
ec80c3e544 Merge from origin/emacs-29
092a2ecb08 ; * admin/make-tarball.txt: Update based on latest experi...
7b9e83d3cf Fix bug#64923
2023-07-31 11:11:23 -04:00