Make loaddefs.el dependencies more explicit in src/Makefile.in
* src/Makefile.in (LC_ALL): Add loaddefs.el as a dependency, too,
since that file may be deleted, but the loaddefs.elc file still
exists. This causes problems in nativecomp builds.
Stefan Kangas [Fri, 5 Aug 2022 10:55:28 +0000 (12:55 +0200)]
Fix namespace problems in viper.el
* lisp/emulation/viper.el
(viper-this-major-mode-requires-vi-state): Rename from
'this-major-mode-requires-vi-state'. Retain old name as an
obsolete alias.
(viper-set-state-in-major-mode): Rename from
'set-viper-state-in-major-mode'. Retain old name as an obsolete
alias.
Stefan Kangas [Fri, 5 Aug 2022 10:49:38 +0000 (12:49 +0200)]
Fix namespace problems in xscheme.el
* lisp/progmodes/xscheme.el (xscheme-default-runlight): Rename
from 'default-xscheme-runlight'. Retain old name as an obsolete
alias.
(xscheme-verify-buffer): Rename from 'verify-xscheme-buffer'.
Retain old name as an obsolete alias.
Stefan Kangas [Fri, 5 Aug 2022 10:28:59 +0000 (12:28 +0200)]
Fix namespace problem in saveplace.el
* lisp/saveplace.el (save-place-load-alist-from-file): Rename from
'load-save-place-alist-from-file'. Retain old name as an obsolete
alias. Update callers.
Po Lu [Fri, 5 Aug 2022 08:12:07 +0000 (16:12 +0800)]
Improve C-x C-q in emacs-news-mode
* lisp/textmodes/emacs-news-mode.el (emacs-news-mode-map)
(emacs-news-view-mode-map): Make C-x C-q switch to the
appropriate mode for editing, and vice versa.
(emacs-news-mode): Disable button-mode and make buffer
read-write.
Po Lu [Fri, 5 Aug 2022 05:21:29 +0000 (13:21 +0800)]
Improve multi-pointer X support
* etc/TODO: Document that MPX support still needs work.
* src/xterm.c (xi_handle_interaction): New function.
(handle_one_xevent): Call it in the appropriate places.
Po Lu [Fri, 5 Aug 2022 02:18:18 +0000 (10:18 +0800)]
Improve input extension focus handling with multiple master devices
* src/xterm.c (x_cache_xi_devices): Initialize device fields to
0.
(xi_handle_focus_change, xi_focus_handle_for_device)
(xi_handle_delete_frame): New functions; store focus information
per-device instead.
(x_detect_focus_change): Handle GenericEvents that way instead.
(handle_one_xevent): Don't cache XI devices on DeviceChanged.
(x_free_frame_resources): Clear any frame focus information.
* src/xterm.h (struct xi_device_t): New fields for focus
tracking. Add comments describing fields.
Stefan Kangas [Thu, 4 Aug 2022 20:58:59 +0000 (22:58 +0200)]
Be more lax when picking up prefixes for loaddefs
* lisp/emacs-lisp/loaddefs-gen.el
(loaddefs-generate--compute-prefixes): Allow tabs and spaces before
symbol name, so that "(defvar\tfoo-bar nil)" is properly picked up.
Before this change, such a definition would be wrongly picked up as
the symbol "nil".
* lisp/auth-source.el (auth-source-netrc-parse-all): New function
(bug#56976).
(auth-source-netrc-parse): Partially revert behaviour in previous
change -- require :allow-null to match.
* lisp/emacs-lisp/loaddefs-gen.el (no-update-autoloads): Moved
here from autoload.el.
* lisp/emacs-lisp/loaddefs-gen.el: Removed now that it's no longer
used.
* lisp/emacs-lisp/package.el
(package-autoload-ensure-default-file): Don't warn about
soon-to-be obsolete functon.
Clean up nntp-send-authinfo after removing obsolete variable
* lisp/gnus/nntp.el (netrc-parse, netrc-machine, netrc-get):
Remove declarations.
(nntp-send-authinfo): Now that `nntp-authinfo-file' is removed,
don't parse the .authinfo file twice, but just rely on the
auth-source functions (bug#56972).
Stefan Kangas [Thu, 4 Aug 2022 12:37:17 +0000 (14:37 +0200)]
Fix namespace problem in meta-mode.el
* lisp/progmodes/meta-mode.el
(meta-font-lock-match-declaration-item-and-skip-to-next): Rename
from 'font-lock-match-meta-declaration-item-and-skip-to-next'.
Retain old name as an obsolete alias.
Stefan Kangas [Thu, 4 Aug 2022 10:14:10 +0000 (12:14 +0200)]
Fix namespace problem in dired-aux.el
* lisp/dired-aux.el (dired-minibuffer-default-add-shell-commands):
Rename from 'minibuffer-default-add-dired-shell-commands'. Retain
old name as an obsolete alias.
Michael Albinus [Thu, 4 Aug 2022 09:59:18 +0000 (11:59 +0200)]
Fix Tramp test
* test/lisp/net/tramp-tests.el (tramp-test48-unload):
Ignore autoload functions in `tramp-file-name' structure tests,
since `tramp-file-name-handler' is also autoloaded.
* src/composite.c (composition_compute_stop_pos): Use an 'endpos' that
is not too far away.
(find_automatic_composition): Use a 'head' that is not too far away.
Also make sure that this code path is not taken when long line
optimizations are disabled.
* src/dispextern.h (struct composition_it): Add a field that points
to the parent iterator.
Po Lu [Thu, 4 Aug 2022 07:52:03 +0000 (15:52 +0800)]
Fix about:protocols in EWW
* lisp/net/eww.el (eww--dwim-expand-url): Handle `about: ' URLs.
(bug#56885)
* lisp/url/url-about.el (url-about): Return correct content type
for HTML data.
* lisp/url/url-http.el (url-http--get-referer): Refrain from
looking for a referrer if the lastloc had no host.
* configure.ac (HAVE_XSYNC): Also check for XSyncTriggerFence.
* src/xfns.c (Fx_create_frame): Create fences.
* src/xterm.c (x_atom_refs): New atom.
(x_sync_trigger_fence, x_sync_init_fences, x_sync_free_fences):
New functions.
(x_sync_update_finish): Trigger the appropriate fence.
(x_free_frame_resources): Free fences.
* src/xterm.h (struct x_display_info): New atom
`_NET_WM_SYNC_FENCES'.
(struct x_output): New field `sync_fences'.
* doc/lispref/loading.texi (Autoload): We're no longer using
make-docfile for loaddefs.el, but we're retaining the format.
Adjust the documentation.
* lisp/loadup.el: Adjust commentary.
* src/lread.c (read_string_literal): Since we're now
byte-compiling the loaddefs files (so doc strings come from the
.elc files), remove the hack that make this return 0 when the
string starts with "\\n".
Michael Albinus [Wed, 3 Aug 2022 15:30:09 +0000 (17:30 +0200)]
Reorganize Tramp
* lisp/net/tramp-adb.el (tramp-adb-handle-write-region): Handle special
case that START is "".
(tramp-adb-handle-set-file-modes)
(tramp-adb-handle-set-file-times):
Use `tramp-skeleton-set-file-modes-times-uid-gid'.
(tramp-adb-handle-make-process):
Use `with-tramp-saved-connection-properties'.
* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
Use `tramp-archive-handle-file-exists-p'.
(tramp-archive-handle-file-exists-p): New defun.
(tramp-archive-file-name-handler): Add ;;;###tramp-autoload cookie.
* lisp/net/tramp-cache.el (tramp-compat, tramp-loaddefs)
(time-stamp): Require.
(tramp-get-file-property, tramp-set-file-property)
(tramp-flush-file-property, tramp-flush-file-upper-properties)
(tramp-flush-file-properties): Use `tramp-file-name-unify'. Adapt
message.
(tramp-flush-directory-properties): Simplify.
(tramp-flush-file-function): Add ;;;###tramp-autoload cookie.
Don't use `with-parsed-tramp-file-name', it isn't exposed.
(with-tramp-file-property, with-tramp-connection-property)
(with-tramp-saved-connection-property): Macros moved from tramp.el.
(with-tramp-saved-file-property)
(with-tramp-saved-file-properties)
(with-tramp-saved-connection-properties): New defmacros.
* lisp/net/tramp-gvfs.el (tramp-gvfs-info): New defun.
(tramp-gvfs-do-copy-or-rename-file)
(tramp-gvfs-handle-delete-directory)
(tramp-gvfs-handle-delete-file, tramp-gvfs-get-root-attributes)
(tramp-gvfs-handle-make-directory): Use it.
(tramp-gvfs-handle-set-file-modes)
(tramp-gvfs-handle-set-file-times)
(tramp-gvfs-handle-set-file-uid-gid):
Use `tramp-skeleton-set-file-modes-times-uid-gid'.
* lisp/net/tramp-sh.el (tramp-sh-handle-make-symbolic-link):
Expand TARGET when flushing file properties.
(tramp-sh-handle-set-file-modes, tramp-sh-handle-set-file-times)
(tramp-sh-handle-set-file-uid-gid):
Use `tramp-skeleton-set-file-modes-times-uid-gid'.
(tramp-sh-handle-file-name-all-completions): Protect, when
connection is not established yet.
(tramp-do-copy-or-rename-file-directly): Flush file properties of
NEWNAME when constructing a new remote file name.
(tramp-do-copy-or-rename-file-out-of-band, tramp-sh-handle-make-process):
Use `with-tramp-saved-connection-properties'.
(tramp-sh-handle-delete-file): Flush file properties only after
deleting, otherwise we get a false alarm.
(tramp-sh-handle-process-file): Flush "/".
(tramp-sh-handle-write-region): Handle special case that START is "".
* lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory)
(tramp-smb-handle-file-acl, tramp-smb-handle-process-file)
(tramp-smb-handle-set-file-acl)
(tramp-smb-handle-start-file-process):
Use `with-tramp-saved-connection-properties'.
(tramp-smb-remote-acl-p): New defun.
(tramp-smb-handle-file-acl, tramp-smb-handle-set-file-acl): Use it.
(tramp-smb-handle-set-file-modes):
Use `tramp-skeleton-set-file-modes-times-uid-gid'.
(tramp-smb-handle-process-file, tramp-smb-maybe-open-connection):
Flush "/".
* lisp/net/tramp-sshfs.el (tramp-sshfs-handle-process-file): Flush "/".
(tramp-sshfs-handle-set-file-modes)
(tramp-sshfs-handle-set-file-times):
Use `tramp-skeleton-set-file-modes-times-uid-gid'.
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-set-file-modes)
(tramp-sudoedit-handle-set-file-times)
(tramp-sudoedit-handle-set-file-uid-gid):
Use `tramp-skeleton-set-file-modes-times-uid-gid'.
* lisp/net/tramp.el (tramp-archive-file-name-handler): Don't declare.
(tramp-verbose, tramp-file-name-unify, tramp-tramp-file-p)
(tramp-file-local-name, tramp-dissect-file-name)
(tramp-make-tramp-file-name, tramp-get-connection-buffer)
(tramp-get-buffer-string, tramp-debug-message)
(tramp-inhibit-progress-reporter, tramp-message):
Add ;;;###tramp-autoload cookie.
(tramp-file-name): Expose defstruct to tramp-loaddefs.el
(tramp-file-name-unify): New optional arg FILE.
(tramp-get-default-directory, tramp-get-buffer-string)
(tramp-message, tramp-backtrace, tramp-error-with-buffer)
(tramp-with-demoted-errors, tramp-barf-if-file-missing)
(tramp-skeleton-copy-directory, tramp-skeleton-delete-directory)
(tramp-skeleton-directory-files)
(tramp-skeleton-directory-files-and-attributes)
(tramp-skeleton-file-local-copy, tramp-skeleton-write-region):
Remove `tramp-suppress-trace' property, it isn't needed for
defmacros and defsubsts.
(with-tramp-file-property, with-tramp-connection-property)
(with-tramp-saved-connection-property): Move macros to tramp-cache.el.
(tramp-skeleton-directory-files-and-attributes): Fix implementation.
(tramp-skeleton-file-local-copy): Fix docstring.
(tramp-skeleton-set-file-modes-times-uid-gid): New defmacro.
(tramp-skeleton-write-region): Set "file-exists-p" cache property.
(tramp-handle-file-exists-p): Use cached value.
(tramp-process-sentinel): Flush "/".
(tramp-make-tramp-temp-file): Suppress also `tramp-smb-remote-acl-p'.
(tramp-get-connection-buffer):
Stefan Kangas [Wed, 3 Aug 2022 14:08:17 +0000 (16:08 +0200)]
Add face to mouse buttons in command substitutions
* lisp/help.el (substitute-command-keys): Add help-key-binding face to
mouse buttons in literal key substitutions.
* test/lisp/help-tests.el
(help-tests-substitute-command-keys/literal-key-sequence): Expand
test for above change.
Eli Zaretskii [Wed, 3 Aug 2022 14:16:09 +0000 (17:16 +0300)]
Teach 'symbol-file' about .eln natively-compiled files
* lisp/subr.el (locate-eln-file): New function.
(symbol-file): Accept an optional 3rd argument NATIVE-P, and, if
non-nil, try to locate and report the .eln file where SYMBOL was
defined.
* etc/NEWS:
* doc/lispref/loading.texi (Where Defined): Document the new
optional argument of 'symbol-file'.
* lisp/Makefile.in (all): Add "autoloads", which now otherwise
won't be done.
($(lisp)/loaddefs.el): Remove this target, since it's always done,
and would then trigger a re-compilation of loaddefs.elc.
* lisp/loadup.el: Load loaddefs.elc (if it exists).
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Don't
include no-byte-compile cookies in the Emacs build.
* src/Makefile.in ($(pdmp)): Depend on loaddefs.elc to ensure that
it's built by this point.
($(etc)/DOC): Don't scan loaddefs.el for doc strings, since they
are now picked up from the .elc file (bug#53024).