]> git.eshelyaron.com Git - emacs.git/log
emacs.git
17 months agoFix SAF query
Po Lu [Fri, 28 Jul 2023 08:43:40 +0000 (16:43 +0800)]
Fix SAF query

* java/org/gnu/emacs/EmacsSafThread.java (documentIdFromName1):
Fix query argument placeholder string.

17 months agoUpdate Android port
Po Lu [Fri, 28 Jul 2023 07:45:35 +0000 (15:45 +0800)]
Update Android port

* src/androidvfs.c (android_document_id_from_name): Don't return
0 if an SAF exception occurs.

17 months agoAvoid crashes when the primary clip is empty
Po Lu [Fri, 28 Jul 2023 07:24:47 +0000 (15:24 +0800)]
Avoid crashes when the primary clip is empty

* src/androidselect.c (Fandroid_get_clipboard): Don't return
data if clipboard is empty.  Reported by Johan Widén
<j.e.widen@gmail.com>.

17 months agoAllow quitting from Android content provider operations
Po Lu [Fri, 28 Jul 2023 07:19:37 +0000 (15:19 +0800)]
Allow quitting from Android content provider operations

* doc/emacs/android.texi (Android Document Providers): Say that
quitting is now possible.
* java/org/gnu/emacs/EmacsNative.java (EmacsNative): New
functions `safSyncAndReadInput', `safync' and `safPostRequest'.
* java/org/gnu/emacs/EmacsSafThread.java: New file.  Move
cancel-able SAF operations here.
* java/org/gnu/emacs/EmacsService.java (EmacsService): Allow
quitting from most SAF operations.
* src/androidvfs.c (android_saf_exception_check): Return EINTR
if OperationCanceledException is received.
(android_saf_stat, android_saf_access)
(android_document_id_from_name, android_saf_tree_opendir_1)
(android_saf_file_open): Don't allow reentrant calls from async
input handlers.
(NATIVE_NAME): Implement new synchronization primitives for JNI.
(android_vfs_init): Initialize new class.

* src/dired.c (open_directory): Handle EINTR from opendir.
* src/sysdep.c: Describe which operations may return EINTR on
Android.

17 months agoUpdate Android port
Po Lu [Fri, 28 Jul 2023 04:21:47 +0000 (12:21 +0800)]
Update Android port

* java/org/gnu/emacs/EmacsDirectoryEntry.java
(EmacsDirectoryEntry): Make class final.
* java/org/gnu/emacs/EmacsService.java (accessDocument)
(openDocumentDirectory, openDocument, createDocument): Throw
access and IO error exceptions instead of catching them.
(createDirectory, deleteDocument): New functions.
* src/android.c (android_init_emacs_service): Add new functions.
* src/android.h (struct android_emacs_service): Likewise.
* src/androidvfs.c (android_saf_exception_check): New function.
Translate between Java exceptions and errno values.
(android_saf_stat, android_saf_access, android_saf_delete_document)
(struct android_saf_tree_vnode, android_document_id_from_name)
(android_saf_tree_name, android_saf_tree_rmdir)
(android_saf_tree_opendir_1, android_saf_tree_opendir)
(android_saf_file_open, android_saf_file_unlink)
(android_saf_new_open, android_saf_new_mkdir): Implement missing
VFS operations and derive errno values from the type of any
exceptions thrown.
(android_vfs_init): Initialize exception classes.
(android_mkdir, android_fstat): Remove trailing whitespace.

17 months agoMerge remote-tracking branch 'origin/master' into feature/android
Po Lu [Fri, 28 Jul 2023 00:22:01 +0000 (08:22 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android

17 months ago; * lisp/tar-mode.el (tar-header-block-tokenize): Fix logic (bug#64686).
Eli Zaretskii [Thu, 27 Jul 2023 16:09:33 +0000 (19:09 +0300)]
; * lisp/tar-mode.el (tar-header-block-tokenize): Fix logic (bug#64686).

17 months agoFix function help for advised aliases (bug#64797)
Mattias Engdegård [Thu, 27 Jul 2023 14:13:54 +0000 (16:13 +0200)]
Fix function help for advised aliases (bug#64797)

* lisp/help-fns.el (help-fns--analyze-function):
For aliases, use the base function name if at the end of the chain.
This fixes a regression introduced in d30fde6b0cc.

Reported by Michael Heerdegen.

17 months ago* lisp/emacs-lisp/byte-opt.el (byte-compile-trueconstp): Extend
Mattias Engdegård [Thu, 27 Jul 2023 07:55:43 +0000 (09:55 +0200)]
* lisp/emacs-lisp/byte-opt.el (byte-compile-trueconstp): Extend

Add skip-chars-forward, skip-chars-backward, skip-syntax-forward,
skip-syntax-backward, current-column, current-indentation,
char-syntax, syntax-class-to-char, parse-partial-sexp, goto-char,
forward-line, next-window, previous-window, minibuffer-window,
selected-frame, selected-window, standard-case-table,
standard-syntax-table, syntax-table, frame-first-window,
frame-root-window and frame-selected-window as always-true functions.

17 months agoBetter compilation of char-before, backward-char and backward-word
Mattias Engdegård [Thu, 27 Jul 2023 09:51:26 +0000 (11:51 +0200)]
Better compilation of char-before, backward-char and backward-word

Implement char-before, backward-char and backward-word as compiler
macros instead of byte-compile handlers so that the source-level
optimiser gets to simplify the result.  In particular, this removes
some branches.

* lisp/emacs-lisp/bytecomp.el (byte-compile-char-before)
(byte-compile-backward-char, byte-compile-backward-word): Remove.
(bytecomp--char-before, bytecomp--backward-char)
(bytecomp--backward-word): New.

17 months agoMerge branch 'master' of git.sv.gnu.org:/srv/git/emacs
Michael Albinus [Thu, 27 Jul 2023 14:52:38 +0000 (16:52 +0200)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs

17 months agonotifications: Allow to use Icon Naming Specification for app-icon
Andrew Tropin [Thu, 27 Jul 2023 14:43:17 +0000 (16:43 +0200)]
notifications: Allow to use Icon Naming Specification for app-icon

* doc/lispref/os.texi (Desktop Notifications): Extend meaning of
:app-icon.

* etc/NEWS: Allow to use Icon Naming Specification for app-icon in
notifications-notify.

* lisp/notifications.el (notifications-notify): Allow to use Icon
Naming Specification for app-icon.

17 months agoNew option 'image-dired-thumb-naming' (bug#61394)
Manuel Giraud [Sat, 25 Feb 2023 18:27:07 +0000 (19:27 +0100)]
New option 'image-dired-thumb-naming' (bug#61394)

* lisp/image/image-dired.el (image-dired-thumb-naming): New user
option to control thumbnail name.

* lisp/image/image-dired-util.el (image-dired-thumb-name): Update
to use new user option and compute contents SHA-1 if needed.
(image-dired-contents-sha1): New function to compute the SHA-1 of the
first 4KiB of a file.

17 months agoUpdate Android port
Po Lu [Thu, 27 Jul 2023 13:59:58 +0000 (21:59 +0800)]
Update Android port

* doc/emacs/android.texi (Android Document Providers): Improve
wording of paragraph clarifying limits on subprocesses.
* java/org/gnu/emacs/EmacsService.java (getDocumentTrees): Use
Java standard US-ASCII coding standard instead of the
undocumented ``ASCII'' alias.
(decodeFileName): Remove unused function.
(documentIdFromName):
* src/android.c (android_init_emacs_service): Take a String for
NAME instead of a byte array.
* src/androidvfs.c (android_verify_jni_string): New function.
(android_document_id_from_name): Verify that STRING is a valid
Modified UTF-8 string.

17 months agoUpdate Android port
Po Lu [Thu, 27 Jul 2023 13:12:29 +0000 (21:12 +0800)]
Update Android port

* src/androidvfs.c (android_afs_initial):
(android_content_get_directory_name):
(android_saf_tree_name):
(android_saf_tree_from_name):
(android_vfs_init): Silence compiler warnings.

17 months agoUpdate Android port
Po Lu [Thu, 27 Jul 2023 12:56:43 +0000 (20:56 +0800)]
Update Android port

* src/android.c (android_run_in_emacs_thread): Behave more
robustly if SIGIO arrives too late Emacs for Emacs to check for
signals, but too early to preempt a long running syscall.

17 months agoAvoid crashes due to invalid 'mode-line-format'
Eli Zaretskii [Thu, 27 Jul 2023 12:34:38 +0000 (15:34 +0300)]
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)

17 months agoAvoid crashes in some edge cases
Po Lu [Thu, 27 Jul 2023 12:32:16 +0000 (20:32 +0800)]
Avoid crashes in some edge cases

* java/org/gnu/emacs/EmacsActivity.java (onActivityResult):
Avoid crashes in some edge cases.

17 months agoFix problem with null-device in Tramp
Michael Albinus [Thu, 27 Jul 2023 11:36:48 +0000 (13:36 +0200)]
Fix problem with null-device in Tramp

* lisp/net/tramp-sh.el (tramp-sh-handle-expand-file-name):
`null-device' could be nil.  Reported by Richard Copley
<rcopley@gmail.com>.

17 months agoAvoid dereference of a freed vnode's operations table
Po Lu [Thu, 27 Jul 2023 10:17:12 +0000 (18:17 +0800)]
Avoid dereference of a freed vnode's operations table

* src/androidvfs.c (android_renameat_noreplace):
(android_rename): Free vdst using vdst->ops, not vp->ops.

17 months agoMerge remote-tracking branch 'origin/master' into feature/android
Po Lu [Thu, 27 Jul 2023 09:14:58 +0000 (17:14 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android

17 months agoUpdate Android port
Po Lu [Thu, 27 Jul 2023 09:13:39 +0000 (17:13 +0800)]
Update Android port

* configure.ac (ANDROID_STUBIFY): Add androidvfs.o when building
libemacs.so.
* doc/emacs/android.texi (Android): Add `Android Document Providers'.
(Android Startup): Update the location of the content identifier
directory.
(Android File System): Describe access to document provider
directories.
(Android Document Providers): New node.
* doc/emacs/emacs.texi (Top): Update the menu for the Android
appendix.
* java/Makefile.in (filename, install_temp/assets/build_info): Make
directory-tree depend on build_info.
* java/org/gnu/emacs/EmacsActivity.java (onActivityResult): New
function.  When a document tree is accepted, persist access to it.
* java/org/gnu/emacs/EmacsDirectoryEntry.java (EmacsDirectoryEntry):
New struct.
* java/org/gnu/emacs/EmacsOpenActivity.java (checkReadableOrCopy): Use
EmacsService.buildContentName.
* java/org/gnu/emacs/EmacsService.java (getEmacsView, openContentUri)
(checkContentUri): Remove excessive debug logging.
(buildContentName, getDocumentAuthorities, requestDirectoryAccess)
(getDocumentTrees, decodeFileName, documentIdFromName, getTreeUri)
(statDocument, accessDocument, openDocumentDirectory, readDirectoryEntry)
(openDocument, createDocument): New functions.

* lib-src/asset-directory-tool.c: Improve commentary by illustrating
the difference between directory and ordinary files.

* src/android.c (ANDROID_THROW, enum android_fd_table_entry_flags)
(struct android_emacs_service, android_extract_long)
(android_scan_directory_tree, android_is_directory)
(android_get_asset_name, android_url_encode, android_content_name_p)
(android_get_content_name, android_check_content_access, android_fstat)
(android_fstatat, android_file_access_p, android_hack_asset_fd_fallback)
(android_detect_ashmem, android_hack_asset_fd, android_close_on_exec)
(android_open, android_close, android_fclose, android_create_lib_link)
(android_faccessat, struct android_dir, android_opendir, android_dirfd)
(android_readdir, android_closedir, android_lookup_asset_directory_fd)
(android_exception_check_3, android_get_current_api_level)
(android_open_asset, android_close_asset, android_asset_read_quit)
(android_asset_read, android_asset_lseek, android_asset_fstat): Move
content and asset related functions to androidvfs.c.
(android_init_emacs_service): Obtain handles for new JNI functions.
(initEmacsParams): Initialize the VFS layer.
(android_request_directory_access): New function.
(android_display_toast): Remove unused function.

* src/android.h (android_get_current_api_level): Assume that
this function never returns less than __ANDROID_API__.
(struct android_emacs_service): Move `struct
android_emacs_service' here.

* src/androidfns.c (Fandroid_request_directory_access): New
interactive function.
(syms_of_androidfns): Register new subr.

* src/androidvfs.c (struct android_vdir, struct android_vops)
(struct android_vnode, struct android_special_vnode)
(enum android_vnode_type, struct android_cursor_class)
(struct emacs_directory_entry_class)
(struct android_parcel_file_descriptor_class)
(android_init_cursor_class, android_init_entry_class)
(android_init_fd_class, android_vfs_canonicalize_name)
(struct android_unix_vnode, struct android_unix_vdir, unix_vfs_ops)
(android_unix_name, android_unix_vnode, android_unix_open)
(android_unix_close, android_unix_unlink, android_unix_symlink)
(android_unix_rmdir, android_unix_rename, android_unix_stat)
(android_unix_access, android_unix_mkdir, android_unix_readdir)
(android_unix_closedir, android_unix_dirfd, android_unix_opendir)
(android_extract_long, android_scan_directory_tree)
(android_is_directory, android_init_assets)
(android_hack_asset_fd_fallback, android_detect_ashmem)
(android_hack_asset_fd, struct android_afs_vnode)
(struct android_afs_vdir, struct android_afs_open_fd, afs_vfs_ops)
(android_afs_name, android_afs_initial, android_close_on_exec)
(android_afs_open, android_afs_close, android_afs_unlink)
(android_afs_symlink, android_afs_rmdir, android_afs_rename)
(android_afs_stat, android_afs_access, android_afs_mkdir)
(android_afs_readdir, android_afs_closedir, android_afs_dirfd)
(android_afs_opendir, android_afs_get_directory_name)
(struct android_content_vdir, content_vfs_ops)
(content_directory_contents, android_content_name)
(android_content_open, android_content_close)
(android_content_unlink, android_content_symlink)
(android_content_rmdir, android_content_rename)
(android_content_stat, android_content_access)
(android_content_mkdir, android_content_readdir)
(android_content_closedir, android_content_dirfd)
(android_content_opendir, android_content_get_directory_name)
(android_content_initial, android_get_content_name)
(android_check_content_access, struct android_authority_vnode)
(authority_vfs_ops, android_authority_name, android_authority_open)
(android_authority_close, android_authority_unlink)
(android_authority_symlink, android_authority_rmdir)
(android_authority_rename, android_authority_stat)
(android_authority_access, android_authority_mkdir)
(android_authority_opendir, android_authority_initial)
(struct android_saf_root_vnode, struct android_saf_root_vdir)
(saf_root_vfs_ops, android_saf_root_name, android_saf_root_open)
(android_saf_root_close, android_saf_root_unlink)
(android_saf_root_symlink, android_saf_root_rmdir)
(android_saf_root_rename, android_saf_root_stat)
(android_saf_root_access, android_saf_root_mkdir)
(android_saf_root_readdir, android_saf_root_closedir)
(android_saf_root_dirfd, android_saf_root_opendir)
(android_saf_root_initial, android_saf_root_get_directory)
(android_saf_stat, android_saf_access)
(struct android_saf_tree_vnode, struct android_saf_tree_vdir)
(saf_tree_vfs_ops, android_document_id_from_name)
(android_saf_tree_name, android_saf_tree_open)
(android_saf_tree_close, android_saf_tree_unlink)
(android_saf_tree_symlink, android_saf_tree_rmdir)
(android_saf_tree_rename, android_saf_tree_stat)
(android_saf_tree_access, android_saf_tree_mkdir)
(android_saf_tree_opendir_1, android_saf_tree_readdir)
(android_saf_tree_closedir, android_saf_tree_dirfd)
(android_saf_tree_opendir, android_saf_tree_from_name)
(android_saf_tree_get_directory, android_saf_file_vnode)
(saf_file_vfs_ops, android_saf_file_name, android_saf_file_open)
(android_saf_file_unlink, android_saf_file_rmdir)
(android_saf_file_opendir, android_close_parcel_fd)
(android_saf_new_vnode, android_saf_new_name, android_saf_new_open)
(android_saf_new_unlink, android_saf_new_symlink)
(android_saf_new_rmdir, android_saf_new_rename)
(android_saf_new_stat, android_saf_new_access)
(android_saf_new_mkdir, android_saf_new_opendir, root_vfs_ops)
(special_vnodes, android_root_name, android_name_file)
(android_vfs_init, android_open, android_unlink, android_symlink)
(android_rmdir, android_mkdir, android_renameat_noreplace)
(android_rename, android_fstat, android_fstatat_1, android_fstatat)
(android_faccessat, android_fdopen, android_close, android_fclose)
(android_open_asset, android_close_asset, android_asset_read_quit)
(android_asset_read, android_asset_lseek, android_asset_fstat)
(android_opendir, android_dirfd, android_readdir)
(android_closedir): Move file system emulation routines here.
Introduce a new ``VFS'' layer for translating between
Emacs-specific file names and the various disparate interfaces
for accessing files on Android.

* src/callproc.c (delete_temp_file):
* src/charset.c (load_charset_map_from_file):
* src/dired.c:
* src/emacs.c (Fkill_emacs):
* src/fileio.c (check_mutable_filename, Fcopy_file)
(Fmake_directory_internal, Fdelete_directory_internal)
(Fdelete_file, Frename_file, Fadd_name_to_file)
(Fmake_symbolic_link, file_accessible_directory_p, Fset_file_modes)
(Fset_file_times, write_region):
* src/filelock.c (get_boot_time, rename_lock_file)
(create_lock_file, current_lock_owner, unlock_file):
* src/image.c (slurp_file, png_load_body, jpeg_load_body):
* src/keyboard.c (Fopen_dribble_file):
* src/lisp.h:
* src/lread.c (Fload):
* src/process.c (handle_child_signal):
* src/sysdep.c (init_standard_fds, emacs_fopen, emacs_fdopen)
(emacs_unlink, emacs_symlink, emacs_rmdir, emacs_mkdir)
(emacs_renameat_noreplace, emacs_rename):
* src/term.c (Fresume_tty, init_tty): Use and add new wrappers
for fopen, fdopen, unlink, symlink, rmdir, mkdir,
renameat_norepalce and rename.

17 months agoSupport Posix-standard pax extended header in tar files
Eli Zaretskii [Thu, 27 Jul 2023 08:36:00 +0000 (11:36 +0300)]
Support Posix-standard pax extended header in tar files

* lisp/tar-mode.el (pax-extended-attribute-record-regexp)
(tar-attr-vector): New variables.
(pax-gid-index, pax-gname-index, pax-linkpath-index)
(pax-mtime-index, pax-path-index, pax-size-index, pax-uid-index)
(pax-uname-index): New constants.
(pax-header-gid, pax-header-gname, pax-header-linkpath)
(pax-header-mtime, pax-header-path, pax-header-size)
(pax-header-uid, pax-header-uname): New accessors to pax header.
(pax-decode-string, tar-parse-pax-extended-header): New functions.
(tar-header-block-tokenize): Recognize and handle Posix-standard
pax extended header, and use its attributes instead of those in
the standard tar header.  (Bug#64686)

17 months agoFix Tramp error on macOS
Michael Albinus [Thu, 27 Jul 2023 07:30:41 +0000 (09:30 +0200)]
Fix Tramp error on macOS

* lisp/net/tramp-sh.el (tramp-ssh-controlmaster-options):
Don't use an absolute ControlPath on macOS.  (Bug#64880)

17 months agoFix image-dired-util-tests on MS-Windows
Eli Zaretskii [Thu, 27 Jul 2023 07:28:43 +0000 (10:28 +0300)]
Fix image-dired-util-tests on MS-Windows

* test/lisp/image/image-dired-util-tests.el
(image-dired-thumb-name/image-dired)
(image-dired-thumb-name/per-directory): Make these tests work on
MS-Windows, where a file name such as "/foo/bar" gets added the
drive letter when passed through 'expand-file-name'.

17 months agoMerge branch 'master' of git.savannah.gnu.org:/srv/git/emacs
Eli Zaretskii [Thu, 27 Jul 2023 07:01:25 +0000 (10:01 +0300)]
Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs

17 months ago; Better documentation of HOME on MS-Windows
Eli Zaretskii [Thu, 27 Jul 2023 06:51:39 +0000 (09:51 +0300)]
; Better documentation of HOME on MS-Windows

* doc/emacs/custom.texi (Find Init): Add footnote about HOME on
MS-Windows.  (Bug#64871)

17 months ago; Better documentation of HOME on MS-Windows
Eli Zaretskii [Thu, 27 Jul 2023 06:51:39 +0000 (09:51 +0300)]
; Better documentation of HOME on MS-Windows

* doc/emacs/custom.texi (Find Init): Add footnote about HOME on
MS-Windows.  (Bug#64871)

17 months ago; Clarify documentation of 'server-after-make-frame-hook'
Eli Zaretskii [Thu, 27 Jul 2023 06:37:03 +0000 (09:37 +0300)]
; Clarify documentation of 'server-after-make-frame-hook'

* doc/lispref/frames.texi (Creating Frames):
* lisp/server.el (server-after-make-frame-hook): Clarify
documentation of 'server-after-make-frame-hook'.  (Bug#64873)

17 months agoFix broken byte-compilation of unary comparisons
Mattias Engdegård [Wed, 26 Jul 2023 16:39:36 +0000 (18:39 +0200)]
Fix broken byte-compilation of unary comparisons

* lisp/emacs-lisp/byte-opt.el (byte-opt--nary-comparison):
Fix a typo causing miscompilation of code such as (OP X),
where OP is <, >, <=, >= or =.
* test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp-tests--test-cases): Add test case.

Reported by Richard Copley.

17 months ago* lisp/emacs-lisp/byte-opt.el (pure-fns): Add `max-char`
Mattias Engdegård [Tue, 25 Jul 2023 10:52:29 +0000 (12:52 +0200)]
* lisp/emacs-lisp/byte-opt.el (pure-fns): Add `max-char`

17 months agoProvide backtrace for byte-ops aref and aset
Mattias Engdegård [Tue, 25 Jul 2023 10:16:30 +0000 (12:16 +0200)]
Provide backtrace for byte-ops aref and aset

Produce synthetic backtrace entries for `aref` and `aset` byte-ops
when the index is non-fixnum, or is out of range for vector or record
arguments (bug#64613).

* src/bytecode.c (exec_byte_code): Detect type and range errors
in-line for aref and aset.
* src/data.c (syms_of_data): Declare symbols Qaref and Qaset.
* test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp-tests--byte-op-error-cases): Add test cases.

17 months ago; bytecode backtrace test clean-up
Mattias Engdegård [Tue, 25 Jul 2023 10:15:00 +0000 (12:15 +0200)]
; bytecode backtrace test clean-up

17 months ago; Documentation followup to last change
Eli Zaretskii [Wed, 26 Jul 2023 15:11:49 +0000 (18:11 +0300)]
; Documentation followup to last change

* lisp/progmodes/project.el (project-uniquify-dirname-transform):
* lisp/uniquify.el (uniquify-dirname-transform): Doc fixes.

* etc/NEWS: Announce the change.

17 months agoSupport transforming the dirname used by uniquify
Spencer Baugh [Mon, 10 Jul 2023 02:21:03 +0000 (22:21 -0400)]
Support transforming the dirname used by uniquify

By transforming the buffer's directory name, we can add
additional information to use during uniquifying.  A basic
one: uniquifying buffer names based on the project name.
* lisp/progmodes/project.el (project-uniquify-dirname-transform): Add.
* lisp/uniquify.el (uniquify-dirname-transform-default)
(uniquify-dirname-transform): Add.  (Bug#62621)
(uniquify-rationalize-file-buffer-names, uniquify-buffer-file-name):
Use 'uniquify-dirname-transform'.
* test/lisp/uniquify-tests.el (uniquify-home)
(uniquify-project-transform): Add tests.

17 months agoFix "M-x man RET [ RET"
Eli Zaretskii [Wed, 26 Jul 2023 14:30:21 +0000 (17:30 +0300)]
Fix "M-x man RET [ RET"

* lisp/man.el (Man-completion-table): Quote special characters
before passing them to the shell.
(Man-name-regexp): Allow '@' and '[' in man-page names.  (Bug#64795)

17 months agoAdd 'define-error' to font lock keywords for emacs-lisp-mode
Neal Sidhwaney [Sun, 23 Jul 2023 23:25:51 +0000 (19:25 -0400)]
Add 'define-error' to font lock keywords for emacs-lisp-mode

* lisp/emacs-lisp/lisp-mode.el (lisp-fdefs): Add 'define-error'.
(Bug#64824)

* test/lisp/emacs-lisp/lisp-mode-tests.el
(test-font-lock-keywords): New test.

Copyright-paperwork-exempt: yes

17 months agolisp-mode.el: Add defvar-keymap to lisp-imenu-generic-expression
Brian Leung [Mon, 24 Jul 2023 11:32:19 +0000 (04:32 -0700)]
lisp-mode.el: Add defvar-keymap to lisp-imenu-generic-expression

* lisp/emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression):
Add defvar-keymap.  We do not ignore (defvar-keymap FOO)
constructs in imenu as we do with (defvar FOO) since the former
constructs are generally not vacuous whereas the latter ones
often are.  (Bug#64831)

17 months agoFix unstable Proced refine tests
Laurence Warne [Sat, 22 Jul 2023 19:47:21 +0000 (20:47 +0100)]
Fix unstable Proced refine tests

* test/lisp/proced-tests.el (proced-refine-test)
(proced-refine-with-update-test): Also check if the parent
process id of each process matches the process id refined
on before failing, since the refiner for process id returns
the children of a process in addition to the process itself.
(Bug#64800)

17 months agoFix build --with-sound on NetBSD and OpenBSD
Valtteri Vuorikoski [Sat, 22 Jul 2023 17:08:42 +0000 (20:08 +0300)]
Fix build --with-sound on NetBSD and OpenBSD

* configure.ac: Use ossaudio by default on *BSD systems.
(Bug#64698)

* etc/NEWS: Announce the change.

17 months agocperl-mode.el: Bring cperl-short-docs up to Perl 5.38.
Harald Jörg [Wed, 26 Jul 2023 07:55:34 +0000 (09:55 +0200)]
cperl-mode.el: Bring cperl-short-docs up to Perl 5.38.

* lisp/progmodes/cperl-mode.el (imenu-max-items): declare the
variable to silence an elint warning.
(cperl-short-docs): Reorder function description to match Perl's
perlfunc documentation.  Add missing shortdocs from perlfunc.
Delete entries for operators which don't exist any more (EQ, NE
and friends).  Shorten docstring lines to 80 chars or less.

17 months agoMerge remote-tracking branch 'origin/master' into feature/android
Po Lu [Wed, 26 Jul 2023 00:08:11 +0000 (08:08 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android

17 months agoAvoid crashes under 'which-key-mode'
Eli Zaretskii [Tue, 25 Jul 2023 17:38:01 +0000 (20:38 +0300)]
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)

17 months agoDon't suggest to revert buffer from non-existing file
Eli Zaretskii [Tue, 25 Jul 2023 14:51:58 +0000 (17:51 +0300)]
Don't suggest to revert buffer from non-existing file

* lisp/files-x.el (modify-file-local-variable-message): Suggest to
revert from the buffer's file only if that file exists; otherwise
suggest 'normal-mode'.  (Bug#64844)

17 months ago; Minor documentation fixes
Eli Zaretskii [Tue, 25 Jul 2023 13:49:18 +0000 (16:49 +0300)]
; Minor documentation fixes

* src/character.c (Fstring_width): Doc fix.

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

17 months agoDon't signal error when locking a file from non file-visiting buffer
Eli Zaretskii [Mon, 24 Jul 2023 15:08:40 +0000 (18:08 +0300)]
Don't signal error when locking a file from non file-visiting buffer

* lisp/userlock.el (userlock--check-content-unchanged): Support
the case where a file is locked before being written to from a
non file-visiting buffer.  (Bug#64821)

17 months agoMerge remote-tracking branch 'origin/master' into feature/android
Po Lu [Mon, 24 Jul 2023 00:09:36 +0000 (08:09 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android

17 months ago; * src/xdisp.c (mark_window_display_accurate_1): Avoid more aborts.
Eli Zaretskii [Sun, 23 Jul 2023 18:49:18 +0000 (14:49 -0400)]
; * src/xdisp.c (mark_window_display_accurate_1): Avoid more aborts.

17 months agoFix rare aborts in CHECK_WINDOW_END
Eli Zaretskii [Sun, 23 Jul 2023 17:44:40 +0000 (13:44 -0400)]
Fix rare aborts in CHECK_WINDOW_END

Those aborts happen because a window's window_end_vpos value
is inconsistent with the current matrix's number of rows, which
happens after resizing the mini-window.
* src/xdisp.c (mark_window_display_accurate_1): Don't validate the
window_end_valid flag if window_end_vpos is inconsistent with the
current_matrix's number of rows.  This happens, e.g., when
Edebug wants to show a value in the mini-window that causes it to
resize, as the window above the mini-window was usually already
redisplayed, and we think its display is accurate.

17 months ago; * src/pdumper.c (dump_overlay): Update hash.
Basil L. Contovounesios [Sun, 23 Jul 2023 07:39:17 +0000 (08:39 +0100)]
; * src/pdumper.c (dump_overlay): Update hash.

This follows commit 7ac947f34c745c61f8acc1fe2452a2c720d57a0d
of 2023-07-13 "; * src/lisp.h (struct Lisp_Overlay): Update
commentary (bug#64580)."

17 months agoFix Proced Start column alignment for different locales
Laurence Warne [Sat, 22 Jul 2023 13:35:15 +0000 (14:35 +0100)]
Fix Proced Start column alignment for different locales

* lisp/proced.el (proced-grammar-alist): Change the justify
value of the start attribute to 'left' instead of a fixed
value of 6.  (Bug#64752)
(proced-format-start): Adjust the doc string.

17 months agoFacilitate locating the app library directory
Po Lu [Sun, 23 Jul 2023 01:52:19 +0000 (09:52 +0800)]
Facilitate locating the app library directory

* doc/emacs/android.texi (Android File System): Document where
the app library directory can probably be found.
* src/android.c (android_create_lib_link): New function.  Try to
symlink `lib' in the directory holding the files directory to
the app library directory.
(setEmacsParams): Call that function if Emacs is being
initialized from an application context.

17 months agoMerge remote-tracking branch 'origin/master' into feature/android
Po Lu [Sun, 23 Jul 2023 00:53:22 +0000 (08:53 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android

17 months ago* src/eval.c (get_backtrace): Don't skip the top frame
Stefan Monnier [Sat, 22 Jul 2023 21:20:51 +0000 (17:20 -0400)]
* src/eval.c (get_backtrace): Don't skip the top frame

`profiler.el` was reporting incomplete backtraces.
I had a suspicion there was something off, but it became obvious
when I saw that `set-buffer-multibyte` did not appear in the
`profiler-report` output when opening a large compressed tarball,
even though I knew it to be a large contributor (which `elp-results`
confirmed).

I have no idea why this `backtrace_next` was there, sadly, but now
`profiler-report` gives me results that make a lot more sense.

17 months agoFix regexp character class syntax property ghost matching bug
Mattias Engdegård [Sat, 22 Jul 2023 15:26:11 +0000 (17:26 +0200)]
Fix regexp character class syntax property ghost matching bug

The syntax-table-dependent regexp character classes [:space:],
[:word:] and [:punct:] always use the buffer-local syntax table for
performance reasons.  Fix a bug that could cause ghost (mis)matches
from use of lingering state by constructs that do use syntax
properties, such as `\sX`.

* src/regex-emacs.c (BUFFER_SYNTAX): New macro.
(ISPUNCT, ISSPACE, ISWORD): Use BUFFER_SYNTAX instead of SYNTAX.
(regex_compile): Delete syntax table setup code that is no longer
needed.
* test/src/regex-emacs-tests.el (regex-emacs-syntax-properties):
New regression test.

17 months ago; Fix documentation of last change.
Eli Zaretskii [Sat, 22 Jul 2023 15:50:26 +0000 (18:50 +0300)]
; Fix documentation of last change.

* src/xdisp.c (syms_of_xdisp):
* src/dispnew.c (syms_of_display):
* doc/lispref/commands.texi (Accessing Mouse): Fix documentation
of last change.

17 months ago* etc/NEWS: Announce the new option 'mouse-prefer-closest-glyph'.
Moritz Maxeiner [Sat, 22 Jul 2023 14:55:07 +0000 (16:55 +0200)]
* etc/NEWS: Announce the new option 'mouse-prefer-closest-glyph'.

17 months agoImplement new option 'mouse-prefer-closest-glyph'
Moritz Maxeiner [Sat, 22 Jul 2023 14:55:07 +0000 (16:55 +0200)]
Implement new option 'mouse-prefer-closest-glyph'

* src/dispnew.c (mouse_prefer_closest_glyph): New global
variable.
(buffer_posn_from_coords):
* src/xdisp.c (remember_mouse_glyph): Respect
'mouse_prefer_closest_glyph'.
(mouse_fine_grained_tracking): Update documentation to
include 'mouse_prefer_closest_glyph' effects.

* doc/lispref/commands.texi (Accessing Mouse): Update
documentation to say what the new option does when enabled.
* lisp/cus-start.el (standard): New user option
'mouse-prefer-closest-glyph'.

17 months agoImprove ERC's internal invisibility API
F. Jason Park [Sat, 15 Jul 2023 04:08:31 +0000 (21:08 -0700)]
Improve ERC's internal invisibility API

* etc/ERC-NEWS: Mention that line endings have moved from the end to
the beginning of hidden messages.
* lisp/erc/erc-fill.el (erc-fill--wrap-ensure-dependencies): Warn when
users have `erc-legacy-invisible-bounds-p' enabled, and force it to
its default value of nil in the current buffer.
(erc-fill-wrap-mode, erc-fill-wrap-enable): Move business involving
compat variable for enabling legacy hidden-message behavior to helper.
* lisp/erc/erc-match.el (erc-match--hide-fools-offset-bounds): Move
internal variable from to main library file and rename to
`erc-legacy-invisible-bounds-p'.  Also make obsolete and flip
semantics so a non-nil value enables the traditional behavior.
(erc-match--hide-message): Move to main library file and rename to
`erc--hide-message'.  Add a property-value parameter instead of
hard-coding to `erc-match'.  Also, condition behavior on renamed
compatibility flag `erc-legacy-invisible-bounds-p'.
(erc-hide-fools): Call `erc--hide-message' with own value for
`invisible' property specifically for fools.  That is, use
`match-fools' rather than `erc-match' or `erc-match-fools' to save
room when visually inspecting.  This retains the module name as a
prefix to hopefully minimize collisions with invisibility spec members
owned by non-ERC minor modes.  The `timestamp' spec member owned by
erc-stamp likewise lacks a namespace prefix, but its feature/group
affiliation is self-evident.
(erc-match--modify-invisibility-spec): Use toggle command
non-interactively for adding and removing invisibility spec member.
(erc-match-toggle-hidden-fools): Add explicit override argument and
defer to general helper for actually modifying spec.
(erc-match--toggle-hidden): New helper for toggling invisibility
spec.
* lisp/erc/erc.el (erc--merge-prop): If new value is a list, prepend
onto existing.  Add note about possible space optimization.
(erc-legacy-invisible-bounds-p): New obsolete compat variable to
enable traditional pre-5.6 invisibility interval on hidden messages.
Replaces `erc-match--hide-fools-offset-bounds-p' but has an inverted
meaning.  The new default value of nil means invisibility covers a
shifted interval consisting of the message body plus the line ending
immediately preceding it.
(erc--hide-message): New function, formerly `erc-match--hide-message'
from erc-match.el introduced in ERC 5.6.
* test/lisp/erc/erc-scenarios-match.el:
(erc-scenarios-match--invisible-stamp): Fix comment and use API
function in interactive convenience setup.
(erc-scenarios-match--find-bol): New test helper.
(erc-scenarios-match--find-eol): Fix bug affecting interactive use.
(erc-scenarios-match--stamp-left-fools-invisible,
erc-scenarios-match--stamp-right-fools-invisible,
erc-scenarios-match--stamp-right-invisible-fill-wrap,
erc-scenarios-match--stamp-both-invisible-fill-static): Update
`invisible' property from `erc-match' to `match-fools'.
(erc-scenarios-match--stamp-right-fools-invisible,
erc-scenarios-match--stamp-both-invisible-fill-static): Move test
body to function of same name for use in multiple cases.
(erc-scenarios-match--stamp-right-fools-invisible--nooffset,
erc-scenarios-match--stamp-both-invisible-fill-static--nooffset): New
test variants asserting proper hiding with old pre-5.6 invisibility
interval.
* test/lisp/erc/erc-tests.el (erc-tests--equal-including-properties):
Relocate macro higher in same file.
(erc--merge-prop): New test.  (Bug#64301)

17 months agoMake erc-fill-wrap work with left-sided stamps
F. Jason Park [Fri, 14 Jul 2023 13:12:30 +0000 (06:12 -0700)]
Make erc-fill-wrap work with left-sided stamps

* etc/ERC-NEWS: Remove all mention of option `erc-timestamp-align-to'
supporting a value of `margin', which has been abandoned.  Do mention
leading white space before stamps now having stamp-related properties.
* lisp/erc/erc-backend.el (erc--reveal-prompt, erc--conceal-prompt):
New generic functions with default implementations factored out from
`erc--unhide-prompt' and `erc--hide-prompt'.
(erc--prompt-hidden-p): New internal predicate function.
(erc--unhide-prompt): Defer to `erc--reveal-prompt', and set
`erc-prompt' text property to t.
(erc--hide-prompt): Defer to `erc--conceal-prompt', and set
`erc-prompt' text property to `hidden'.
* lisp/erc/erc-compat.el (erc-compat--29-browse-url-irc): Don't
use `function-equal'.
* lisp/erc/erc-fill.el (erc-fill-wrap-margin-width,
erc-fill-wrap-margin-side): New options to control side and initial
width of `fill-wrap' margin.
(erc-fill--wrap-beginning-of-line): Fix bug involving non-string
valued `display' props.
(erc-fill-wrap-toggle-truncate-lines): New command to re-enable
`visual-line-mode' when toggling off `truncate-lines'.
(erc-fill-wrap-mode-map): Remap `toggle-truncate-lines' to
`erc-fill-wrap-toggle-truncate-lines'.
(erc-fill-wrap-mode, erc-fill-wrap-enable, erc-fill-wrap-disable):
Update doc string, persist a few local vars, and conditionally set
`erc-stamp--margin-left-p'.  When deactivating, disable
`visual-line-mode' first.
(erc-fill--wrap-continued-message-p): Use `erc-speaker' instead of
heuristics when comparing nicks between consecutive messages.
(erc-fill-wrap-nudge): Update doc string and account for left-sided
stamps.
(erc-timestamp-offset): Add comment regarding conditional guard based
on function-valued option.
* lisp/erc/erc-stamp.el (erc-timestamp-use-align-to): Remove value
variant `margin', which was originally intended to be new in ERC 5.6.
This functionality was all but useless without the internal minor mode
`erc-stamp--display-margin-mode' active.
(erc-stamp-right-margin-width): Remove unused option new in 5.6.
(erc-stamp--display-margin-force): Remove unused function.
(erc-stamp--margin-width, erc-stamp--margin-left-p): New internal
variables.
(erc-stamp--init-margins-on-connect): New function for initializing
mode-managed margin after connecting.
(erc-stamp--adjust-right-margin, erc-stamp--adjust-margin): Rename
function to latter and accommodate left-hand stamps.
(erc-stamp--inherited-props): Move definition higher up in same file.
(erc-stamp--display-margin-mode): Update function name, and adjust
setup and teardown to accommodate left-handed stamps.  Don't add
advice around `erc-insert-timestamp-function'.
(erc-stamp--last-prompt, erc-stamp--display-prompt-in-left-margin):
New function and helper var to convert a normal inserted prompt so
that it appears in the left margin.
(erc-stamp--refresh-left-margin-prompt): Helper for other modules to
quickly refresh prompt outside of insert hooks.
(erc--reveal-prompt, erc--conceal-prompt): New implementations for
when `erc-stamp--display-margin-mode' is active.
(erc-insert-timestamp-left): Convert to generic function and provide
implementation for `erc-stamp--display-margin-mode'.
(erc-stamp--omit-properties-on-folded-lines): New variable, an escape
hatch for propertizing white space before right-side stamps folded
over onto another line.
(erc-insert-timestamp-right): Don't expect `erc-timestamp-align-to' to
ever be the symbol `margin'.  Move handling for that case to one
contingent on the internal minor mode `erc-stamp--display-margin-mode'
being active.  Add text properties preceding stamps that occupy a line
by their lonesome.  See related news entry for rationale.  This is
arguably a breaking change.
* lisp/erc/erc.el (erc--refresh-prompt-hook): New hook variable for
modules to adjust prompt properties whenever it's refreshed.
(erc--refresh-prompt): Fix bug in which user-defined prompt functions
failed to hide when quitting in server buffers.  Run new hook
`erc--refresh-prompt-hook'.
(erc-display-prompt): Add comment noting that the text property
`erc-prompt' now actually matters: it's t while a session is running
and `hidden' when disconnected.
* test/lisp/erc/erc-fill-tests.el (erc-fill--left-hand-stamps): New
test.
* test/lisp/erc/erc-stamp-tests.el
(erc-stamp-tests--use-align-to--nil,
erc-stamp-tests--use-align-to--t): New functions forged from old test
bodies to allow optionally asserting pre-5.6 behavior regarding
leading white space on right-hand stamps that exist on their own line.
(erc-timestamp-use-align-to--nil, erc-timestamp-use-align-to--t):
Parameterize with compatibility flag.
(erc-timestamp-use-align-to--margin,
erc-stamp--display-margin-mode--right): Rename test to latter.
* test/lisp/erc/erc-tests.el (erc-hide-prompt): Add some assertions
for new possible value of `erc-prompt' text property.
* test/lisp/erc/resources/fill/snapshots/stamps-left-01.eld: New test
data file.  (Bug#60936)

17 months agoDon't always toggle a choice when prompting
Mauro Aranda [Sun, 16 Jul 2023 12:22:11 +0000 (09:22 -0300)]
Don't always toggle a choice when prompting

* lisp/wid-edit.el (widget-choice-prompt-value): Respect the value
of widget-choice-toggle.  (Bug#60712)

17 months agoMerge branch 'master' of git.savannah.gnu.org:/srv/git/emacs
Eli Zaretskii [Sat, 22 Jul 2023 12:56:50 +0000 (15:56 +0300)]
Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs

17 months agoAvoid prompting when creating a restricted-sexp widget
Mauro Aranda [Sun, 16 Jul 2023 22:46:54 +0000 (19:46 -0300)]
Avoid prompting when creating a restricted-sexp widget

* lisp/wid-edit.el (restricted-sexp): Turn value into a
string before reading.
(widget-field-value-create): Guard against value being nil,
so the field can be created even if the widget has a bad
default value.  (Bug#59937)

17 months agoTry harder to keep the initial word selected
Po Lu [Sat, 22 Jul 2023 12:09:54 +0000 (20:09 +0800)]
Try harder to keep the initial word selected

* lisp/touch-screen.el (touch-screen-drag): If
touch-screen-word-select, also keep the initial word within the
region while scrolling.

17 months ago; Eglot: adjust EGLOT-NEWS mention for last change
João Távora [Sat, 22 Jul 2023 09:36:39 +0000 (10:36 +0100)]
; Eglot: adjust EGLOT-NEWS mention for last change

* etc/EGLOT-NEWS: Adjust.

17 months agoEglot: simplify and hopefully fix last change (bug#64784)
João Távora [Sat, 22 Jul 2023 09:30:24 +0000 (10:30 +0100)]
Eglot: simplify and hopefully fix last change (bug#64784)

* lisp/progmodes/eglot.el (eglot--post-self-insert-hook): Use
last-command-event.

17 months agoAdd inhibit-remote-files and without-remote-files
Michael Albinus [Sat, 22 Jul 2023 08:16:04 +0000 (10:16 +0200)]
Add inhibit-remote-files and without-remote-files

* doc/emacs/files.texi (Remote Files): Do not document tramp-mode
any longer.  Describe inhibit-remote-files instead.

* doc/lispref/files.texi (Magic File Names): Add without-remote-files.

* doc/misc/tramp.texi (Frequently Asked Questions): Do not
document tramp-mode any longer.  Describe inhibit-remote-files and
without-remote-files instead.

* etc/NEWS: Add inhibit-remote-files and without-remote-files.
Fix typos.

* lisp/net/tramp.el (inhibit-remote-files): New defun.
(without-remote-files): New defmacro.

* test/lisp/net/tramp-archive-tests.el
(tramp-archive-test49-without-remote-files):
* test/lisp/net/tramp-tests.el (tramp-test49-without-remote-files):
New tests.
(tramp-test50-unload): Rename.

17 months agoEnsure 'existing-filename' has 'bounds-of-thing-at-point'
Philip Kaludercic [Sun, 16 Jul 2023 11:56:23 +0000 (13:56 +0200)]
Ensure 'existing-filename' has 'bounds-of-thing-at-point'

* lisp/thingatpt.el (existing-filename): Define
'bounds-of-thing-at-point' for 'existing-filename'.  (Bug#64664)

17 months ago; Handle string-at-point at end of buffer gracefully
Philip Kaludercic [Wed, 19 Jul 2023 19:14:40 +0000 (21:14 +0200)]
; Handle string-at-point at end of buffer gracefully

* lisp/thingatpt.el (thing-at-point-bounds-of-string-at-point): Check
if 'char-after' returns non-nil before passing it to
'char-syntax'.  (Bug#64733)

17 months ago; * lisp/time.el (display-time-date-and-time): Fix last change.
Eli Zaretskii [Sat, 22 Jul 2023 06:13:35 +0000 (09:13 +0300)]
; * lisp/time.el (display-time-date-and-time): Fix last change.

17 months agoFix window box computation for menu bar windows
Po Lu [Sat, 22 Jul 2023 06:06:08 +0000 (14:06 +0800)]
Fix window box computation for menu bar windows

* src/window.h (WINDOW_MENU_BAR_P): Check for external menu bars
using HAVE_WINDOW_SYSTEM && HAVE_EXT_MENU_BAR instead of hard
coding X without Xt or GTK.

17 months agoUpdate Android port
Po Lu [Sat, 22 Jul 2023 02:45:36 +0000 (10:45 +0800)]
Update Android port

* doc/lispref/commands.texi (Key Sequence Input): Describe which
events receive imaginary prefix keys.
* lisp/touch-screen.el (touch-screen-translate-touch): Consider
`vertical-line' a virtual function key.
(function-key-map): Translate events on vertical window borders.

17 months ago; * etc/NEWS: Announce `current-key-remap-sequence'.
Po Lu [Sat, 22 Jul 2023 02:44:34 +0000 (10:44 +0800)]
; * etc/NEWS: Announce `current-key-remap-sequence'.

17 months agoFix default value of scroll bar frame parameters on Android
Po Lu [Sat, 22 Jul 2023 00:32:59 +0000 (08:32 +0800)]
Fix default value of scroll bar frame parameters on Android

* src/androidfns.c (Fx_create_frame): Default
Qvertical_scroll_bars to Qnil, but set scroll-bar-width and
scroll-bar-height.

17 months agoMerge remote-tracking branch 'origin/master' into feature/android
Po Lu [Fri, 21 Jul 2023 23:59:17 +0000 (07:59 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android

17 months agomacroexp.el: Fix missing warning for intermediate expansions
Stefan Monnier [Wed, 19 Jul 2023 15:29:32 +0000 (11:29 -0400)]
macroexp.el: Fix missing warning for intermediate expansions

When a macro expanded to a call to an obsolete macro, we failed
to emit a warning for that use of the obsolete macro.

* lisp/emacs-lisp/macroexp.el (macroexp-macroexpand):
Use `macroexpand-1` to check obsolecence of intermediate expansions.

* test/lisp/emacs-lisp/macroexp-tests.el
(macroexp--test-obsolete-macro): New test.

17 months agoImprove touch screen and text conversion behavior of many commands
Po Lu [Fri, 21 Jul 2023 13:23:35 +0000 (21:23 +0800)]
Improve touch screen and text conversion behavior of many commands

* doc/lispref/commands.texi (Key Sequence Input): Document new
argument to `read-key-sequence' etc.
* lisp/help-macro.el (make-help-screen):
* lisp/subr.el (read-key, read-char-choice-with-read-key):
Disable text conversion and display the OSK before reading a key
sequence.
* lisp/touch-screen.el (touch-screen-window-selection-changed):
Only cancel the minibuffer OSK timer.
(touch-screen-handle-point-up): Update comment accordingly.
* src/keyboard.c (command_loop_1, read_menu_command)
(read_key_sequence, read_key_sequence_vs, Fread_key_sequence)
(Fread_key_sequence_vector): New arg DISABLE_TEXT_CONVERSION.
All callers changed.

17 months agoUse BASE_EQ instead of EQ in search.c
Mattias Engdegård [Fri, 21 Jul 2023 12:44:53 +0000 (14:44 +0200)]
Use BASE_EQ instead of EQ in search.c

* src/search.c (clear_regexp_cache, compile_pattern, Fmatch_data):
Use BASE_EQ where appropriate.

17 months ago; Fix bug in regexp debug code
Mattias Engdegård [Fri, 21 Jul 2023 09:56:42 +0000 (11:56 +0200)]
; Fix bug in regexp debug code

* src/regex-emacs.c (print_partial_compiled_pattern):
Only the 7 bottom bits of the first byte form the bitmap size.

17 months agoFix failing native-compile test
Robert Pluim [Fri, 21 Jul 2023 12:38:15 +0000 (14:38 +0200)]
Fix failing native-compile test

* test/src/comp-tests.el (comp-tests-result-lambda): Use
'comp-deftest', not 'ert-deftest'.  The latter doesn't check for
native-compile support.

17 months agoFix Proced display header alignment under 'text-scale-adjust'
Eli Zaretskii [Fri, 21 Jul 2023 12:19:02 +0000 (15:19 +0300)]
Fix Proced display header alignment under 'text-scale-adjust'

* lisp/proced.el (proced-mode): Force the header-line to scale
according to 'text-scale-adjust'.
(proced-header-line): Use width of the header-line's face's
characters as align-to units, not the width of the frame's
default face's font.  (Bug#64752)

* src/xdisp.c (calc_pixel_width_or_height): Use font's
average_width or space_width, not max_width, as the correct
measure of the font's width.  This is consistent with the rest of
the display engine.

17 months agoCorrectly translate touchscreen-up events outside a frame
Po Lu [Fri, 21 Jul 2023 07:20:45 +0000 (15:20 +0800)]
Correctly translate touchscreen-up events outside a frame

* lisp/touch-screen.el (touch-screen-translate-touch): Check if
a prefix is specified separately from prefix being non-nil.
Accept `nil' as an imaginary prefix key.
(function-key-map): Register translation functions on the tab
bar, tab lines and internal border.

17 months agoImprove touch screen scrolling support
Po Lu [Fri, 21 Jul 2023 06:22:54 +0000 (14:22 +0800)]
Improve touch screen scrolling support

* lisp/touch-screen.el (touch-screen-preview-select): Avoid
unnecessary redisplays.
(touch-screen-drag): Scroll at window margins using window
scrolling functions instead of relying on redisplay to recenter
the window around point.

17 months agoUpdate Android port
Po Lu [Fri, 21 Jul 2023 04:23:08 +0000 (12:23 +0800)]
Update Android port

* doc/emacs/input.texi (Touchscreens): Document
`touch-screen-preview-select'.
* doc/lispref/commands.texi (Touchscreen Events): Fix typo in
the descriptions of two touch screen events.
* lisp/dired.el (dired-insert-set-properties): Adjust for
changes to file end computation.
* lisp/minibuffer.el (clear-minibuffer-message): Don't clear
minibuffer message if dragging.
* lisp/touch-screen.el (touch-screen-current-tool): Fix doc
string.
(touch-screen-preview-select): New function.
(touch-screen-drag): Call it if point changes.

17 months agoMerge remote-tracking branch 'origin/master' into feature/android
Po Lu [Thu, 20 Jul 2023 23:58:30 +0000 (07:58 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android

17 months agoFix last change to wid-edit.el
Stephen Berman [Thu, 20 Jul 2023 19:51:24 +0000 (21:51 +0200)]
Fix last change to wid-edit.el

* lisp/wid-edit.el (widget-choose): Test for stringp instead of
char-or-string-p, since substitute-command-keys should only apply
to choice values that are strings. (Bug#64046, Message #37)

17 months agoCC Mode (some languages): handle string lines ending in \\
Alan Mackenzie [Thu, 20 Jul 2023 19:33:42 +0000 (19:33 +0000)]
CC Mode (some languages): handle string lines ending in \\

In C, C++, Objective C, and Pike modes, regard \\ in a string
at EOL as a backslash followed by an escaped newline.  In the
other languages, this remains regarded as an escaped backslash
followed by an invalid string terminator.

* lisp/progmodes/cc-defs.el (c-is-escaped, c-will-be-escaped):
Amend to observe the changed notion of escaped newlines.

* lisp/progmodes/cc-langs.el (c-string-escaped-newlines):
Unused, removed.
(c-escaped-newline-takes-precedence): New lang const and var.
(c-string-innards-re-alist): Amend, using the above new lang
var.

17 months ago; Fix previous change
Robert Pluim [Thu, 20 Jul 2023 17:12:32 +0000 (19:12 +0200)]
; Fix previous change

17 months agoFix defface's with no customization data
Eli Zaretskii [Thu, 20 Jul 2023 16:25:43 +0000 (19:25 +0300)]
Fix defface's with no customization data

* lisp/net/shr.el (shr-h4, shr-h5, shr-h6):
* lisp/cedet/semantic/decorate/include.el
(semantic-decoration-on-includes):
* lisp/progmodes/make-mode.el (makefile-shell):
* lisp/time.el (display-time-date-and-time):
* lisp/nxml/nxml-mode.el (nxml-text, nxml-delimiter)
(nxml-element-colon): Add face definitions (bug#64655).

17 months agodocview: imenu: check return value of 'mutool'
Morgan Smith [Tue, 11 Jul 2023 18:08:24 +0000 (14:08 -0400)]
docview: imenu: check return value of 'mutool'

While 'mutool' supports many filetypes, 'mutool show' only
supports PDF files.  This would lead to cryptic imenu errors
when opening other
file types (like EPUB) since we would parse the error output.
During my testing this caused 'imenu--index-alist' to have a
value of '(nil).

* lisp/doc-view.el (doc-view--pdf-outline): Error when 'mutool'
returns an error.  Use 'call-process' to get the return value and
remove the call to 'shell-quote-argument' as 'call-process'
doesn't want any escapes.
(doc-view-mode): Handle possible error from 'doc-view-imenu-setup'.
(doc-view-imenu-enabled): Remove superfluous (and ... t).
(doc-view-imenu-setup): Remove check for mutool already ensured by
'doc-view-imenu-enabled' being non-nil.
(Bug#64516)

17 months agoCustom var python-interpreter-args (bug#64397)
Matthias Meulien [Thu, 13 Jul 2023 21:38:41 +0000 (23:38 +0200)]
Custom var python-interpreter-args (bug#64397)

* lisp/progmodes/python.el (python-interpreter): Mention
new variable in documentation.
(python-interpreter-args): New custom variable.
(python-shell-interpreter, python-shell-interpreter-args)
(python-shell-interpreter-interactive-arg): Improve
documentation.
(python--list-imports, python--do-isort)
(python-fix-imports): Make process use customisable
arguments.

17 months agoPreserve comments when redrawing a widget (Bug#64649)
Mauro Aranda [Sat, 15 Jul 2023 21:54:14 +0000 (18:54 -0300)]
Preserve comments when redrawing a widget (Bug#64649)

* lisp/cus-edit.el (custom-comment-preserve): New function.
(custom-redraw): Use it.
(custom-comment-create): Make sure :comment-shown is set to
t if the comment widget gets created.
(custom-face-value-create, custom-variable-value-create):
Recreate the custom-comment widget with the preserved value,
if any.

17 months agoPass original spec just after creating the face-widget
Mauro Aranda [Mon, 10 Jul 2023 13:47:23 +0000 (10:47 -0300)]
Pass original spec just after creating the face-widget

* lisp/cus-edit.el (custom-face-get-current-spec-unfiltered):
New function, extracted from custom-face-get-current-spec.
(custom-face-get-current-spec): Use it.
(custom-face-state-set): Take an optional argument, to decide
if we should check against a filtered or unfiltered spec.
(custom-face-value-create): Use the new optional argument.
(Bug#64347)

17 months agoUpdate Android port
Po Lu [Thu, 20 Jul 2023 12:50:50 +0000 (20:50 +0800)]
Update Android port

* exec/trace.c (handle_readlinkat): Adjust commentary to match
behavior.
* src/android.c (android_get_keysym_name): NULL terminate
*name_return.

17 months agoUpdate some menu definitions for Android
Po Lu [Thu, 20 Jul 2023 11:58:32 +0000 (19:58 +0800)]
Update some menu definitions for Android

* lisp/international/mule-cmds.el (set-coding-system-map): Don't
display `set-terminal-coding-system' on Android.

17 months ago* lisp/cus-edit.el (custom-display): Add `android' display type.
Po Lu [Thu, 20 Jul 2023 11:52:44 +0000 (19:52 +0800)]
* lisp/cus-edit.el (custom-display): Add `android' display type.

17 months agoMerge remote-tracking branch 'origin/master' into feature/android
Po Lu [Thu, 20 Jul 2023 11:52:01 +0000 (19:52 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android

17 months agoMerge from origin/emacs-29
Po Lu [Thu, 20 Jul 2023 11:50:45 +0000 (19:50 +0800)]
Merge from origin/emacs-29

4bd8e8c6d2b ; * src/xdisp.c: Fix wording in commentary.
3af27a4b815 Improve commentary in nsfns.m
5de5e4b4d0a Fix typos and ommissions in cus-edit.el
9d93c6ba14a ; * src/xdisp.c: Fix typos in the commentary.
86f2d6d62fc ; * src/xdisp.c: Improve commentary.  (Bug#64596)
ac075176bf0 ; * admin/notes/bugtracker: Fix punctuation.
81518534471 ; * admin/notes/bugtracker: Use 'e.g.' throughout the doc...
f063f79a493 Convert NUL-containing NSString objects to Lisp strings c...
d172cd59854 ; * doc/lispref/keymaps.texi (Modifying Menus): Add cross...
927e8b470fc ; * doc/lispref/keymaps.texi (Extended Menu Items): Add @...
77f489421ec ; * src/xdisp.c: Minor improvements of the commentary.
ce3f9fba1a3 ; Improve accuracy of out-out-order message insertion
17073af84d7 ; Improve robustness of package-report-bug

17 months agoUpdate Android port
Po Lu [Thu, 20 Jul 2023 11:49:47 +0000 (19:49 +0800)]
Update Android port

* src/android.c (struct android_event_queue): Don't make
unnecessarily volatile.

17 months ago; * src/xdisp.c: Fix wording in commentary.
Eli Zaretskii [Thu, 20 Jul 2023 10:23:01 +0000 (13:23 +0300)]
; * src/xdisp.c: Fix wording in commentary.