Commit Graph

48681 Commits

Author SHA1 Message Date
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
Eli Zaretskii
555cb8f7b1 Merge from origin/emacs-29
ee20b50dfe ; * lisp/progmodes/typescript-ts-mode.el (treesit-query-c...
2215298d90 Update JSX support due to upstream changes (bug#64647)
235561a2cc Update TSX support due to upstream changes (bug#64647)
12ab82d3b3 ; Fix customization form of 'bookmark-watch-bookmark-file'
d149a4dc42 ; Improve documentation of automatic addition to minibuff...
42a9962794 ; Improve documentation of 'last-command-event'
101455cb85 ; * lisp/subr.el (ignore, always): Doc fixes.  (Bug#64776)
2023-07-31 11:11:21 -04:00
Eli Zaretskii
f56034ca3c Merge from origin/emacs-29
c692bbc659 Revert "Improve commentary in nsfns.m"
bb885928d7 Fix NetBSD build --with-sound
39873d6d5d Fix typo in pre-filter for underline property
2023-07-31 11:11:21 -04:00
Po Lu
bd5532e0db Update Android port
* src/sfnt.c (ISECT): Micro-optimize this instruction.
* src/sfntfont.c (sfnt_parse_style): Avoid GC safety problem.
2023-07-31 20:33:27 +08:00
Po Lu
1e54e565e1 ; Update Android port
* src/sfntfont.c (sfnt_parse_style): Fix misworded commentary.
2023-07-31 17:59:26 +08:00
Po Lu
9cf166db63 Initialize Android API level earlier
* java/org/gnu/emacs/EmacsNative.java (EmacsNative):
* java/org/gnu/emacs/EmacsNoninteractive.java (main):
* java/org/gnu/emacs/EmacsService.java (run):
* java/org/gnu/emacs/EmacsThread.java (run):
* src/android.c (initEmacs, setEmacsParams): Set
`android_api_level' within setEmacsParams, not in initEmacs.
* src/androidvfs.c: Pacify compiler warnings.
2023-07-31 14:18:12 +08:00
Po Lu
5a8130ab96 Implement cross-directory SAF rename operations
* java/org/gnu/emacs/EmacsService.java (renameDocument): Don't
catch UnsupportedOperationException; handle ENOSYS in
android_saf_rename_document instead.
(moveDocument): New function.
* lisp/subr.el (y-or-n-p): Always change the text conversion
style.
* src/android.c (android_init_emacs_service)
(android_exception_check_4): New function.
* src/android.h: Update Java function table.
* src/androidvfs.c (android_saf_rename_document): Handle ENOSYS
here by setting errno to EXDEV.
(android_saf_move_document): New function.
(android_document_id_from_name): Take const `dir_name'.
(android_saf_tree_rename): Use delete-move-rename to implement
cross-directory renames.
2023-07-31 10:50:12 +08:00
Eli Zaretskii
735f3700f6 ; * src/character.c (Fstring_width): Fix last change. 2023-07-30 22:09:05 +03:00
Eli Zaretskii
bf83fdba9e ; * src/character.c (Fstring_width, Fchar_width): Doc fixes. 2023-07-30 20:10:54 +03:00
Po Lu
7b9e83d3cf Fix bug#64923
* src/xfns.c (Fx_create_frame): Prevent cairo surface from being
left without a desired size.  (bug#64923)
2023-07-30 21:18:54 +08:00
Eli Zaretskii
71419a60c3 Avoid crashes due to invalid 'mode-line-format'
* src/xdisp.c (display_mode_element, redisplay_window_error):
Don't take XCAR of what can be Qnil.  (Bug#64893)

(cherry picked from commit 7ea3f39dee)
2023-07-30 10:24:10 +03:00
Eli Zaretskii
d13029cdcd Avoid crashes under 'which-key-mode'
* src/keyboard.c (Fthis_single_command_keys): Don't allow calls to
Fvector with negative first argument.  (Bug#64857)

(cherry picked from commit 65834b8f8d)
2023-07-30 10:23:05 +03:00
Eli Zaretskii
cb1f7db249 ; Minor documentation fixes
* src/character.c (Fstring_width): Doc fix.

* doc/emacs/trouble.texi (Understanding Bug Reporting): Fix typo
(bug#64854).

(cherry picked from commit f6e4e77d23)
2023-07-30 10:22:42 +03:00