emacs.git
2 years agoFix preserving selections if `x-lost-selection-functions' signals
Po Lu [Tue, 12 Jul 2022 07:14:04 +0000 (15:14 +0800)]
Fix preserving selections if `x-lost-selection-functions' signals

* src/xterm.c (x_preserve_selections): Get selection owner and
run lost selection hook separately.

2 years agoMerge from origin/emacs-28
Stefan Kangas [Tue, 12 Jul 2022 04:30:35 +0000 (06:30 +0200)]
Merge from origin/emacs-28

9183d1672c ; * etc/PROBLEMS: Give a URL for bug#50666.
1f508a8b6f etc/PROBLEMS: Describe issues with native compilation on C...
84a5d47125 ; Fix last change
0461021893 ; * lisp/emacs-lisp/comp.el (native-comp-speed): Explain t...
876317271b * lisp/find-dired.el (find-dired): Doc fix; add crossrefer...

2 years agoTry to save selections from being disowned during frame deletion
Po Lu [Tue, 12 Jul 2022 02:47:23 +0000 (10:47 +0800)]
Try to save selections from being disowned during frame deletion

* lisp/cus-start.el (standard): Add
`x-auto-preserve-selections'.
* src/xselect.c (x_clear_frame_selections): Collect deleted
selections into a variable and preserve them.
* src/xterm.c (x_preserve_selections): New function.
(syms_of_xterm): New variable `x-auto-preserve-selections'.
* src/xterm.h: Update prototypes.

2 years ago; * lisp/textmodes/rst.el: Delete stale comment.
Stefan Kangas [Mon, 11 Jul 2022 23:43:50 +0000 (01:43 +0200)]
; * lisp/textmodes/rst.el: Delete stale comment.

2 years ago* lisp/mail/mail-utils.el (mail-string-delete): Make obsolete.
Stefan Kangas [Mon, 11 Jul 2022 20:32:36 +0000 (22:32 +0200)]
* lisp/mail/mail-utils.el (mail-string-delete): Make obsolete.

2 years ago; * etc/PROBLEMS: Give a URL for bug#50666.
Eli Zaretskii [Mon, 11 Jul 2022 18:24:33 +0000 (21:24 +0300)]
; * etc/PROBLEMS: Give a URL for bug#50666.

2 years agoetc/PROBLEMS: Describe issues with native compilation on Cygwin
Ken Brown [Mon, 11 Jul 2022 17:03:32 +0000 (13:03 -0400)]
etc/PROBLEMS: Describe issues with native compilation on Cygwin

2 years agoPrefer defvar-keymap in thumbs.el
Stefan Kangas [Mon, 11 Jul 2022 15:59:25 +0000 (17:59 +0200)]
Prefer defvar-keymap in thumbs.el

* lisp/thumbs.el (thumbs-mode-map, thumbs-view-image-mode-map):
Prefer defvar-keymap.

2 years agoRemove obsolete uses of obsolete functions
Mattias Engdegård [Mon, 11 Jul 2022 15:31:38 +0000 (17:31 +0200)]
Remove obsolete uses of obsolete functions

* src/minibuf.c (minibuf_conform_representation): Remove.
(Ftry_completion): Don't call it.
(Ftest_completion): Don't use the obsolete Fstring_make_unibyte or
Fstring_make_multibyte; they don't serve any useful purpose here.
We don't try to equate unibyte and multibyte raw bytes in symbol
lookups elsewhere and there is no reason to do it here.

2 years agoRemove dead branch from substitute-command-keys
Stefan Kangas [Mon, 11 Jul 2022 15:21:23 +0000 (17:21 +0200)]
Remove dead branch from substitute-command-keys

* lisp/help.el (substitute-command-keys): Remove dead branch;
where-is-internal will follow any remaps for us.  Note also that the
test case for remapping still pass.

2 years agoMake `g' in `vc-annotate' not bug out
Lars Ingebrigtsen [Mon, 11 Jul 2022 14:29:58 +0000 (16:29 +0200)]
Make `g' in `vc-annotate' not bug out

* lisp/vc/vc-annotate.el (vc-annotate): Don't bug out on `g'
(bug#48359).

2 years agoOnly reset buffer-local buffer-stale-function in make-indirect-buffer
Lars Ingebrigtsen [Mon, 11 Jul 2022 14:05:08 +0000 (16:05 +0200)]
Only reset buffer-local buffer-stale-function in make-indirect-buffer

* src/buffer.c (Fmake_indirect_buffer): Don't set the global
buffer-stale-function (bug#48348).

2 years ago; Fix last change
Eli Zaretskii [Mon, 11 Jul 2022 13:52:03 +0000 (16:52 +0300)]
; Fix last change

* doc/lispref/compile.texi (Native-Compilation Variables): Explain
better what the value -1 of 'native-comp-speed' means.

2 years ago; * lisp/emacs-lisp/comp.el (native-comp-speed): Explain the -1 value.
Eli Zaretskii [Mon, 11 Jul 2022 13:48:24 +0000 (16:48 +0300)]
; * lisp/emacs-lisp/comp.el (native-comp-speed): Explain the -1 value.

2 years agoDocument the recent add-global-abbrev change
Lars Ingebrigtsen [Mon, 11 Jul 2022 13:38:59 +0000 (15:38 +0200)]
Document the recent add-global-abbrev change

* doc/emacs/abbrevs.texi (Defining Abbrevs): Document that you can
use the active region.

2 years agoMake add-mode-abbrev use the active region
Lars Ingebrigtsen [Mon, 11 Jul 2022 13:34:07 +0000 (15:34 +0200)]
Make add-mode-abbrev use the active region

* lisp/abbrev.el (add-mode-abbrev, add-global-abbrev): Document it.
(add-abbrev): If there's an active region, use that as the
expansion (bug#56496).

2 years ago; * etc/NEWS: Announce obsoletion of rlogin.el.
Stefan Kangas [Mon, 11 Jul 2022 13:05:56 +0000 (15:05 +0200)]
; * etc/NEWS: Announce obsoletion of rlogin.el.

2 years ago* lisp/obsolete/rlogin.el: Add "Obsolete-since" line.
Stefan Kangas [Mon, 11 Jul 2022 11:56:28 +0000 (13:56 +0200)]
* lisp/obsolete/rlogin.el: Add "Obsolete-since" line.

2 years agoMake net/rlogin.el obsolete
Stefan Kangas [Mon, 11 Jul 2022 11:55:41 +0000 (13:55 +0200)]
Make net/rlogin.el obsolete

* lisp/net/rlogin.el: Move from here...
* lisp/obsolete/rlogin.el: ...to here.  (Bug#56461)

2 years ago* src/.lldbinit: Fix copyright year.
Stefan Kangas [Mon, 11 Jul 2022 12:56:48 +0000 (14:56 +0200)]
* src/.lldbinit: Fix copyright year.

2 years agoAllow commands that call `yes-or-no-p' to be repeatable again
Lars Ingebrigtsen [Mon, 11 Jul 2022 12:51:34 +0000 (14:51 +0200)]
Allow commands that call `yes-or-no-p' to be repeatable again

* lisp/subr.el (y-or-n-p): Enable commands that call this function
to be repeatable (bug#45999).  This stopped working after this
function started using read-from-minibuffer.
* src/fns.c (Fyes_or_no_p): Ditto.

2 years agoMove EIEIO autoloads to the common loaddefs.el
Stefan Kangas [Mon, 11 Jul 2022 12:29:33 +0000 (14:29 +0200)]
Move EIEIO autoloads to the common loaddefs.el

* lisp/emacs-lisp/eieio-core.el:
* lisp/emacs-lisp/eieio-custom.el:
* lisp/emacs-lisp/eieio-opt.el:
* lisp/obsolete/eieio-compat.el: Remove generated-autoload-file
setting and don't require eieio-loaddefs.el.

2 years agoSupport for debugging Emacs with LLDB
Gerd Möllmann [Sun, 10 Jul 2022 11:35:32 +0000 (13:35 +0200)]
Support for debugging Emacs with LLDB

* (src/.lldbinit): New file.
* (etc/emacs_lldb.py): Module loaded from .lldbinit.

2 years agoDon't create unused file rmail-loaddefs.el
Stefan Kangas [Mon, 11 Jul 2022 12:03:25 +0000 (14:03 +0200)]
Don't create unused file rmail-loaddefs.el

* lisp/mail/undigest.el: Remove 'generated-autoload-file' local
variable.  (Bug#56491)

2 years agoSimplify str_to_multibyte and related code
Mattias Engdegård [Mon, 11 Jul 2022 11:43:34 +0000 (13:43 +0200)]
Simplify str_to_multibyte and related code

* src/character.h (str_to_multibyte):
* src/character.c (str_to_multibyte): Remove `nbytes` argument; return
it instead.  Copy forwards.
* src/fns.c (concat_to_string, Fstring_make_multibyte):
Use str_to_multibyte.
(string_make_multibyte): Remove.
(string_to_multibyte):
* src/print.c (print_string):  Adapt calls.

2 years agoDoc fix; don't mention rlogin
Stefan Kangas [Mon, 11 Jul 2022 11:47:08 +0000 (13:47 +0200)]
Doc fix; don't mention rlogin

* doc/emacs/misc.texi (Remote Host):
* doc/misc/eshell.texi (Bugs and ideas): Don't mention
rlogin.  (Bug#56461)

2 years agoImprove behavior of `lost-selection-mode' with multiple buffers
Po Lu [Mon, 11 Jul 2022 11:36:01 +0000 (19:36 +0800)]
Improve behavior of `lost-selection-mode' with multiple buffers

* etc/NEWS: Announce new hook `post-select-region-hook'.

* lisp/select.el (lost-selection-last-region-buffer): New
variable.
(lost-selection-post-select-region-function): New function.
Deactivate the mark if the buffer changed.
(lost-selection-mode): Add new hook.

* src/keyboard.c (command_loop_1): Run that hook when
appropriate.
(syms_of_keyboard): New hook `post-select-region-hook'.

2 years agoFix crm.el compilation warning
Lars Ingebrigtsen [Mon, 11 Jul 2022 11:34:35 +0000 (13:34 +0200)]
Fix crm.el compilation warning

* lisp/emacs-lisp/crm.el (crm-default-separator): Move to avoid
compilation warning.

2 years agoDon't call home from test/src/process-tests.el
Lars Ingebrigtsen [Mon, 11 Jul 2022 11:19:48 +0000 (13:19 +0200)]
Don't call home from test/src/process-tests.el

* test/src/process-tests.el (process-num-processors): Move from
here...
* test/manual/process-callout-tests.el: ... to here (bug#55858).

2 years agoMake mouse-2 respect delete-selection mode
Visuwesh [Mon, 11 Jul 2022 10:57:34 +0000 (12:57 +0200)]
Make mouse-2 respect delete-selection mode

* lisp/delsel.el: Make the mouse yank commands delete-selection-mode
aware (bug#56421).

2 years ago* lisp/emacs-lisp/package.el (define-package): Make obsolete.
Stefan Kangas [Mon, 11 Jul 2022 10:41:50 +0000 (12:41 +0200)]
* lisp/emacs-lisp/package.el (define-package): Make obsolete.

2 years agoPrevent setting user time if the WM doesn't support it
Po Lu [Mon, 11 Jul 2022 10:48:12 +0000 (18:48 +0800)]
Prevent setting user time if the WM doesn't support it

* src/xterm.c (x_update_frame_user_time_window): Don't set
_NET_WM_USER_TIME if it's not supported by the window manager.

2 years agoAdd test for the gradle-android compilation message pattern
Mattias Engdegård [Mon, 11 Jul 2022 10:19:18 +0000 (12:19 +0200)]
Add test for the gradle-android compilation message pattern

* etc/compilation.txt (symbol): Add example.
* test/lisp/progmodes/compile-tests.el (compile-tests--test-regexps-data):
(compile-test-error-regexps): Add test case (bug#56249).

2 years agoFix memory leak in ns_draw_relief
Daniel Martín [Sun, 10 Jul 2022 20:36:28 +0000 (22:36 +0200)]
Fix memory leak in ns_draw_relief

* src/nsterm.h (struct ns_output): New fields to store the relief
colors.
* src/nsterm.m (ns_setup_relief_colors): New function to keep the
relief colors as part of the ns_output structure.
(ns_draw_relief): Remove static local variables.  Assigning them to
nil caused a memory leak of NSColor instances (bug#56462).  Call
ns_setup_relief_colors instead.

2 years agoAutoload named-let
Lars Ingebrigtsen [Mon, 11 Jul 2022 10:18:04 +0000 (12:18 +0200)]
Autoload named-let

* lisp/emacs-lisp/subr-x.el (named-let): Autoload `named-let' for
easier use (bug#56473).

2 years agoFix `M-x lisp-fill-paragraph'
Lars Ingebrigtsen [Mon, 11 Jul 2022 10:15:04 +0000 (12:15 +0200)]
Fix `M-x lisp-fill-paragraph'

* lisp/emacs-lisp/lisp-mode.el (lisp-fill-paragraph): Fix filling
when called directly with `M-x lisp-fill-paragraph' instead of via
`M-q' (bug#56476).

2 years agoMake crm-default-separator obsolete as per FIXME
Stefan Kangas [Sun, 26 Dec 2021 20:59:16 +0000 (21:59 +0100)]
Make crm-default-separator obsolete as per FIXME

* lisp/emacs-lisp/crm.el (crm-default-separator): Make into
obsolete variable alias for crm-separator.
(crm-separator): Update docstring for above change.

2 years ago; * lwlib/xlwmenu.c (make_shadow_gcs): Remove "a = a" pattern.
Manuel Giraud [Mon, 11 Jul 2022 10:09:13 +0000 (12:09 +0200)]
; * lwlib/xlwmenu.c (make_shadow_gcs): Remove "a = a" pattern.

* lwlib/xlwmenu.c (make_shadow_gcs): Remove code that sets a value
to itself (bug#56479).

2 years ago* lisp/find-dired.el (find-dired): Doc fix; add crossreference.
Stefan Kangas [Mon, 11 Jul 2022 09:51:16 +0000 (11:51 +0200)]
* lisp/find-dired.el (find-dired): Doc fix; add crossreference.

2 years agoRe-add comment on autoloading cookies in preloaded files
Stefan Kangas [Mon, 11 Jul 2022 09:17:09 +0000 (11:17 +0200)]
Re-add comment on autoloading cookies in preloaded files

This comment was removed in 2009, but it is useful to explain why
we are keeping these autoload cookies.
* lisp/bindings.el:
* lisp/font-core.el:
* lisp/format.el:
* lisp/international/mule-cmds.el: Re-add comment on autoloading.
* lisp/font-core.el (font-lock-defaults): Re-add autoload cookie,
despite the fact that this file is preloaded.

2 years agoPrefer :risky defcustom keyword
Stefan Kangas [Mon, 11 Jul 2022 08:33:45 +0000 (10:33 +0200)]
Prefer :risky defcustom keyword

* lisp/align.el (align-region-separate, align-rules-list)
(align-exclude-rules-list, align-vhdl-rules-list):
* lisp/bindings.el (mode-line-percent-position):
* lisp/filesets.el (filesets-menu-cache-file, filesets-commands)
(filesets-external-viewers, filesets-ingroup-patterns)
(filesets-data):
* lisp/hi-lock.el (hi-lock-file-patterns-policy):
* lisp/mail/mailalias.el (mail-complete-alist)
(mail-directory-process, mail-directory-stream)
(mail-directory-parser):
* lisp/mail/rmail.el (rmail-confirm-expunge):
* lisp/mail/sendmail.el (mail-signature):
* lisp/mail/supercite.el (sc-cite-frame-alist)
(sc-uncite-frame-alist, sc-recite-frame-alist)
(sc-default-cite-frame, sc-default-uncite-frame)
(sc-default-recite-frame, sc-attrib-selection-list)
(sc-rewrite-header-list):
* lisp/progmodes/make-mode.el (makefile-special-targets-list):
* lisp/so-long.el (so-long-action-alist):
* lisp/textmodes/sgml-mode.el (sgml-tag-alist): Prefer defcustom
:risky keyword argument to directly setting the 'risky-local-variable'
symbol property.

2 years agoSimplify and speed up string-to-multibyte
Mattias Engdegård [Mon, 11 Jul 2022 08:34:40 +0000 (10:34 +0200)]
Simplify and speed up string-to-multibyte

* src/character.h (str_to_multibyte):
* src/character.c (str_to_multibyte): Change signature and simplify;
the conversion is no longer done in-place.
* src/fns.c (string_to_multibyte): Drop temporary buffer and memcpy;
adapt to new str_to_multibyte signature.
* src/print.c (print_string): Drop memcpy; adapt call to str_to_multibyte.
* test/src/fns-tests.el (fns--string-to-unibyte): Rename to...
(fns--string-to-unibyte-multibyte): ... this and strengthen, so that
the test covers string-to-multibyte reasonably well.

2 years agoRename 'longlines-breakpoint-chars' to 'longlines-break-chars'
Manuel Giraud [Sun, 10 Jul 2022 13:01:55 +0000 (15:01 +0200)]
Rename 'longlines-breakpoint-chars' to 'longlines-break-chars'

* etc/NEWS:
* lisp/longlines.el (longlines-break-chars): Rename
'longlines-breakpoint-chars' to 'longlines-break-chars'
(bug#56335).

2 years agoHandle errors sending selection decline events asynchronously
Po Lu [Mon, 11 Jul 2022 02:07:21 +0000 (10:07 +0800)]
Handle errors sending selection decline events asynchronously

* src/xselect.c (x_decline_selection_request): Handle errors
asynchronously.
* src/xterm.c (x_ignore_errors_for_next_request)
(x_stop_ignoring_errors): Export functions.
* src/xterm.h: Update prototypes.

2 years ago* time-date.el (decoded-time-period): Rename TIME in docstring
Philip Kaludercic [Sun, 10 Jul 2022 18:55:02 +0000 (20:55 +0200)]
* time-date.el (decoded-time-period): Rename TIME in docstring

2 years ago; * lisp/emacs-lisp/ert-x.el (tramp-remote-path): Fix last change.
Michael Albinus [Sun, 10 Jul 2022 18:07:37 +0000 (20:07 +0200)]
; * lisp/emacs-lisp/ert-x.el (tramp-remote-path): Fix last change.

2 years agoRemove some ineffectual calls to purecopy
Stefan Kangas [Sun, 10 Jul 2022 16:57:19 +0000 (18:57 +0200)]
Remove some ineffectual calls to purecopy

* lisp/dired.el (dired-chown-program, dired-trivial-filenames):
* lisp/emacs-lisp/shortdoc.el (shortdoc--display-function):
* lisp/help-fns.el (help-fns--mention-shortdoc-groups):
* lisp/mail/mail-extr.el (mail-extr-full-name-prefixes)
(mail-extr-all-letters-but-separators, mail-extr-all-letters)
(mail-extr-first-letters, mail-extr-last-letters)
(mail-extr-bad-dot-pattern, mail-extr-full-name-suffix-pattern)
(mail-extr-alternative-address-pattern)
(mail-extr-trailing-comment-start-pattern)
(mail-extr-name-pattern, mail-extr-telephone-extension-pattern)
(mail-extr-ham-call-sign-pattern, mail-extr-normal-name-pattern)
(mail-extr-two-name-pattern)
(mail-extr-listserv-list-name-pattern)
(mail-extr-stupid-vms-date-stamp-pattern)
(mail-extr-hz-embedded-gb-encoded-chinese-pattern)
(mail-extr-x400-encoded-address-pattern)
(mail-extr-x400-encoded-address-field-pattern-format)
(mail-extr-x400-encoded-address-surname-pattern)
(mail-extr-x400-encoded-address-given-name-pattern)
(mail-extr-x400-encoded-address-full-name-pattern): Remove
ineffectual calls to purecopy.

2 years agoRename new option to browse-url-default-scheme
Stefan Kangas [Sun, 10 Jul 2022 16:44:43 +0000 (18:44 +0200)]
Rename new option to browse-url-default-scheme

* lisp/net/browse-url.el (browse-url-default-scheme): Rename from
'browse-url-guess-default-scheme'.  Update caller.
Suggested by Eli Zaretskii <eliz@gnu.org>.

2 years agoSpeed up string-to-unibyte
Mattias Engdegård [Sun, 10 Jul 2022 16:02:08 +0000 (18:02 +0200)]
Speed up string-to-unibyte

* src/character.h (str_to_unibyte):
* src/character.c (str_to_unibyte): Remove.
* src/fns.c (Fstring_to_unibyte): Ditch the call to str_to_unibyte and
the unnecessary heap allocation.  Write new, faster code.
* test/src/fns-tests.el (fns--string-to-unibyte): New test.

2 years agoFix Tramp test environment on hydra.nixos.org
Michael Albinus [Sun, 10 Jul 2022 16:13:50 +0000 (18:13 +0200)]
Fix Tramp test environment on hydra.nixos.org

* lisp/emacs-lisp/ert-x.el (tramp-remote-path): Declare.  Adapt
`tramp-remote-path' on hydra.  (Bug#56424)

* test/lisp/dnd-tests.el (dnd-tests-begin-drag-files): Remove instrumentation.

* test/lisp/filenotify-tests.el:
* test/lisp/shadowfile-tests.el:
* test/lisp/net/tramp-tests.el: Do not adapt `tramp-remote-path'.

2 years agoDon't use purecopy in dictionary.el
Stefan Kangas [Sun, 10 Jul 2022 15:09:18 +0000 (17:09 +0200)]
Don't use purecopy in dictionary.el

* lisp/net/dictionary.el (dictionary-pre-buffer)
(dictionary-display-dictionary-line)
(dictionary-display-more-info, dictionary-display-strategy-line)
(dictionary-display-match-lines): Don't use purecopy; it has no
effect here.

2 years ago* src/dired.c (directory_files_internal): Update comment
Stefan Monnier [Sun, 10 Jul 2022 15:15:27 +0000 (11:15 -0400)]
* src/dired.c (directory_files_internal): Update comment

2 years ago* src/dired.c (directory_files_internal): Fix bug#56469
Stefan Monnier [Sun, 10 Jul 2022 14:13:27 +0000 (10:13 -0400)]
* src/dired.c (directory_files_internal): Fix bug#56469

Avoid concatenating encoded and decoded file names.

2 years agoNew user option browse-url-guess-default-scheme
Stefan Kangas [Sun, 10 Jul 2022 12:30:52 +0000 (14:30 +0200)]
New user option browse-url-guess-default-scheme

* lisp/net/browse-url.el (browse-url-guess-default-scheme): New
user option.
(browse-url-url-at-point): Use above new user option.

2 years ago; Use example.org in an example
Stefan Kangas [Sun, 10 Jul 2022 12:22:40 +0000 (14:22 +0200)]
; Use example.org in an example

* lisp/net/browse-url.el (browse-url-filename-alist): Use example.org
to be more RFC2606 compliant.

2 years ago* doc/misc/tramp.texi (Frequently Asked Questions): Fix formatting.
Michael Albinus [Sun, 10 Jul 2022 12:19:55 +0000 (14:19 +0200)]
* doc/misc/tramp.texi (Frequently Asked Questions): Fix formatting.

2 years agoMinor fixes to WM_DELETE_WINDOW handling
Po Lu [Sun, 10 Jul 2022 12:05:23 +0000 (20:05 +0800)]
Minor fixes to WM_DELETE_WINDOW handling

* src/xterm.c (handle_one_xevent): Only handle WM_DELETE_WINDOW
to toplevel windows, and set event timestamp.

2 years agoMake browse-url.el support for plain "mozilla" obsolete
Stefan Kangas [Sun, 10 Jul 2022 10:15:48 +0000 (12:15 +0200)]
Make browse-url.el support for plain "mozilla" obsolete

* lisp/net/browse-url.el (browse-url-mozilla-program)
(browse-url-mozilla-arguments)
(browse-url-mozilla-startup-arguments)
(browse-url-mozilla-new-window-is-tab, browse-url-mozilla)
(browse-url-mozilla-sentinel): Make obsolete.  (Bug#56464)
(browse-url--browser-defcustom-type, browse-url-default-browser):
Don't refer to above obsolete function 'browse-url-mozilla'.

2 years ago* lisp/net/browse-url.el: Improve commentary.
Stefan Kangas [Sun, 10 Jul 2022 00:24:30 +0000 (02:24 +0200)]
* lisp/net/browse-url.el: Improve commentary.

2 years ago; * test/lisp/dnd-tests.el (dnd-tests-begin-drag-files): Instrument.
Michael Albinus [Sun, 10 Jul 2022 10:42:55 +0000 (12:42 +0200)]
; * test/lisp/dnd-tests.el (dnd-tests-begin-drag-files): Instrument.

2 years ago; * lisp/startup.el (command-line-1): Fix last change.
Eli Zaretskii [Sun, 10 Jul 2022 08:43:45 +0000 (11:43 +0300)]
; * lisp/startup.el (command-line-1): Fix last change.

2 years agoFix the startup.el behavior when 'face-font-rescale-alist' is non-nil
Eli Zaretskii [Sun, 10 Jul 2022 08:32:05 +0000 (11:32 +0300)]
Fix the startup.el behavior when 'face-font-rescale-alist' is non-nil

* lisp/startup.el (command-line-1, normal-top-level): Reset the
default face's font only if 'face-font-rescale-alist' affects that
face's font.  For the use case where it matters, see
https://lists.gnu.org/archive/html/emacs-devel/2022-07/msg00157.html.
Make the 'inhibit-startup-screen' and non-inhibit branches behave
the same in that case.

2 years ago; * src/composite.c (Fcomposition_get_gstring): Fix compiler warnings.
Po Lu [Sun, 10 Jul 2022 07:25:00 +0000 (15:25 +0800)]
; * src/composite.c (Fcomposition_get_gstring): Fix compiler warnings.

2 years agoFix build with old sqlite libraries
Po Lu [Sun, 10 Jul 2022 07:22:51 +0000 (15:22 +0800)]
Fix build with old sqlite libraries

* src/sqlite.c (Fsqlite_open): Don't use SQLITE_OPEN_FULLMUTEX
if not defined.

2 years agoSpeed up 'find_automatic_composition'
Eli Zaretskii [Sun, 10 Jul 2022 06:37:40 +0000 (09:37 +0300)]
Speed up 'find_automatic_composition'

* src/composite.c (find_automatic_composition): Limit search
backward in buffers to the first newline.  Fix commentary.

2 years agoDon't sync for errors setting up DND targets and toplevels
Po Lu [Sun, 10 Jul 2022 05:21:21 +0000 (13:21 +0800)]
Don't sync for errors setting up DND targets and toplevels

* src/xterm.c (xm_setup_dnd_targets, x_dnd_free_toplevels)
(x_dnd_compute_toplevels): Avoid catching errors synchronously.

2 years agoMerge from origin/emacs-28
Stefan Kangas [Sun, 10 Jul 2022 04:30:35 +0000 (06:30 +0200)]
Merge from origin/emacs-28

115261b323 ; Improve wording of recently-changed doc strings.

2 years agoMake `x-no-window-manager' cover user time as well
Po Lu [Sun, 10 Jul 2022 02:49:46 +0000 (10:49 +0800)]
Make `x-no-window-manager' cover user time as well

* src/xterm.c (x_update_frame_user_time_window):
(x_wm_supports_1): Respect `x-no-window-manager'.  This makes
testing some features easier.

2 years ago* test/Makefile.in (WRITE_LOG): Always be verbose on hydra.nixos.
Glenn Morris [Sat, 9 Jul 2022 22:12:42 +0000 (15:12 -0700)]
* test/Makefile.in (WRITE_LOG): Always be verbose on hydra.nixos.

2 years agoMake STRING_SET_MULTIBYTE an inline function
Stefan Monnier [Sat, 9 Jul 2022 16:53:34 +0000 (12:53 -0400)]
Make STRING_SET_MULTIBYTE an inline function

* src/lisp.h (STRING_SET_MULTIBYTE): Make it into a function.

* src/composite.c (Fcomposition_get_gstring):
Prefer `make_multibyte_string` over Fconcat+STRING_SET_MULTIBYTE.

2 years agoExclude platform specific browsers from custom type
Stefan Kangas [Sat, 9 Jul 2022 15:47:33 +0000 (17:47 +0200)]
Exclude platform specific browsers from custom type

* lisp/net/browse-url.el (browse-url--browser-defcustom-type):
Don't include platform specific browsers on other platforms.

2 years ago* lisp/net/eww.el (eww): Improve docstring.
Stefan Kangas [Sat, 9 Jul 2022 15:46:59 +0000 (17:46 +0200)]
* lisp/net/eww.el (eww): Improve docstring.

2 years agoMake browse-url-default-browser fall back to EWW
Stefan Kangas [Thu, 7 Jul 2022 11:43:53 +0000 (13:43 +0200)]
Make browse-url-default-browser fall back to EWW

* lisp/net/browse-url.el (browse-url-default-browser): Fall back
to EWW.

2 years agoDrop support for the dead third-party w3 package
Stefan Kangas [Thu, 7 Jul 2022 11:25:23 +0000 (13:25 +0200)]
Drop support for the dead third-party w3 package

The w3 package was removed from GNU ELPA in 2020 as it doesn't run on
a recent Emacs, and development had stopped over a decade before that.
If anyone wants to revive the w3 package, they should look this all
over, but it doesn't make sense for us to maintain this support code.
Ref: https://debbugs.gnu.org/25395

* lisp/net/browse-url.el (browse-url-w3): Make obsolete.
(browse-url--browser-defcustom-type)
(browse-url-default-browser):
* lisp/ffap.el (ffap-url-at-point, ffap-file-at-point):
* lisp/net/newst-plainview.el (newsticker--buffer-do-insert-text):
* lisp/net/newst-reader.el (newsticker-html-renderer)
(newsticker-show-news):
* lisp/net/newst-treeview.el (newsticker--treeview-render-text):
* lisp/org/ol.el (org-store-link):
* lisp/url/url.el (url-retrieve): Remove w3 support code and related
documentation and comments.  (Bug#56435)

* test/lisp/net/browse-url-tests.el
(browse-url-tests-browser-kind): Adjust test for above changes.

* etc/TODO: Remove TODO to install W3.
* doc/misc/org.org (Handling Links): Don't mention W3.
* lisp/msb.el (msb--few-menus, msb--very-many-menus): Check for
eww-mode instead of w3-mode.

2 years agoImprove introductory section of TRAMP manual
Stefan Kangas [Sat, 9 Jul 2022 14:19:07 +0000 (16:19 +0200)]
Improve introductory section of TRAMP manual

* doc/misc/tramp.texi (Top, Overview): Explain what TRAMP is
without contrasting to Ange FTP.  (Bug#56440)
(Frequently Asked Questions): Move information on Ange FTP here.

2 years agoPrefer defvar-keymap in net/*.el
Stefan Kangas [Sat, 9 Jul 2022 12:38:48 +0000 (14:38 +0200)]
Prefer defvar-keymap in net/*.el

* lisp/net/dictionary.el (dictionary-mode-map):
* lisp/net/dig.el (dig-mode-map):
* lisp/net/eudc-hotlist.el (eudc-hotlist-mode-map):
* lisp/net/eudc.el (eudc-mode-map):
* lisp/net/mairix.el (mairix-searches-mode-map):
* lisp/net/newst-treeview.el
(newsticker-treeview-list-sort-button-map)
(newsticker-treeview-mode-map):
* lisp/net/quickurl.el (quickurl-list-mode-map):
* lisp/net/rcirc.el (rcirc-mode-map)
(rcirc-multiline-minor-mode-map, rcirc-track-minor-mode-map):
* lisp/net/rlogin.el (rlogin-mode-map):
* lisp/net/secrets.el (secrets-mode-map):
* lisp/net/sieve-mode.el (sieve-mode-map):
* lisp/net/sieve.el (sieve-manage-mode-map):
* lisp/net/snmp-mode.el (snmp-mode-map):
* lisp/net/telnet.el (telnet-mode-map): Prefer defvar-keymap.

2 years agoAvoid extra sync and atom name query on ending Motif DND
Po Lu [Sat, 9 Jul 2022 12:19:56 +0000 (20:19 +0800)]
Avoid extra sync and atom name query on ending Motif DND

* src/xterm.c (handle_one_xevent): Use `x_dnd_action_symbol' to
set the Motif action instead.

2 years agoDelete obsolete variable tooltip-use-echo-area
Stefan Kangas [Fri, 8 Jul 2022 13:07:55 +0000 (15:07 +0200)]
Delete obsolete variable tooltip-use-echo-area

* lisp/tooltip.el (tooltip-use-echo-area): Delete variable
obsolete since 24.1.
(tooltip-help-tips):
* lisp/progmodes/gud.el (gud-tooltip-process-output)
(gud-tooltip-tips): Don't use above deleted variable.

2 years ago* lisp/woman.el (woman-fill-column): Increase default to 70.
Stefan Kangas [Sat, 9 Jul 2022 10:43:50 +0000 (12:43 +0200)]
* lisp/woman.el (woman-fill-column): Increase default to 70.

2 years ago* lisp/mh-e/mh-mime.el (mh-small-show-buffer-p): Double value.
Stefan Kangas [Sat, 9 Jul 2022 10:01:43 +0000 (12:01 +0200)]
* lisp/mh-e/mh-mime.el (mh-small-show-buffer-p): Double value.

2 years agoDelete obsolete variable font-lock-maximum-size
Stefan Kangas [Fri, 8 Jul 2022 12:55:42 +0000 (14:55 +0200)]
Delete obsolete variable font-lock-maximum-size

* lisp/font-lock.el (font-lock-maximum-size): Delete variable
obsolete since 24.1.
(font-lock-initial-fontify):
* lisp/mail/rmail.el (rmail-variables):
* lisp/mh-e/mh-mime.el (mh-small-show-buffer-p): Don't use above
deleted variable.
* lisp/font-core.el (font-lock-mode):
* lisp/font-lock.el:
* lisp/info.el: Don't mention above deleted variable.

2 years ago; * lisp/emacs-lisp/cconv.el (cconv--var-classification): Optimise.
Mattias Engdegård [Sat, 9 Jul 2022 09:15:17 +0000 (11:15 +0200)]
; * lisp/emacs-lisp/cconv.el (cconv--var-classification): Optimise.

2 years agoNew command emacs-news-toggle-tag
Stefan Kangas [Sat, 9 Jul 2022 09:29:25 +0000 (11:29 +0200)]
New command emacs-news-toggle-tag

* lisp/textmodes/emacs-news-mode.el (emacs-news-toggle-tag): New
command.
(emacs-news-mode-map): Bind above new command to "C-c C-t".
* test/lisp/textmodes/emacs-news-mode-resources/toggle-tag.erts:
* test/lisp/textmodes/emacs-news-mode-tests.el: New files.

2 years agoImprove ert-test-erts-file documentation
Stefan Kangas [Sat, 9 Jul 2022 08:54:01 +0000 (10:54 +0200)]
Improve ert-test-erts-file documentation

* lisp/emacs-lisp/ert.el (ert-test-erts-file): Improve docstring.
* doc/misc/ert.texi (erts files): Fix typo.

2 years agoBind M-G unconditionally in Dired
Stefan Kangas [Sat, 9 Jul 2022 08:21:31 +0000 (10:21 +0200)]
Bind M-G unconditionally in Dired

* lisp/dired-x.el: Move dired-goto-subdir binding from here...
* lisp/dired.el (dired-mode-map): ...to here.  (Bug#21981)

* doc/misc/dired-x.texi (Miscellaneous Commands): Move
documentation of above command from here...
* doc/emacs/dired.texi (Subdirectory Motion): ...to here.

2 years agoMove dired-buffer-more-recently-used-p to dired.el
Stefan Kangas [Sat, 9 Jul 2022 08:14:54 +0000 (10:14 +0200)]
Move dired-buffer-more-recently-used-p to dired.el

* lisp/dired-x.el (dired-buffer-more-recently-used-p): Move from
here...
* lisp/dired.el (dired-buffer-more-recently-used-p): ...to here.

2 years agoDelete obsolete variable buffer-substring-filters
Stefan Kangas [Fri, 8 Jul 2022 12:46:20 +0000 (14:46 +0200)]
Delete obsolete variable buffer-substring-filters

* lisp/simple.el (buffer-substring-filters): Delete variable obsolete
since 24.1.
(buffer-substring--filter): Adjust for deleted variable.
* doc/lispref/text.texi (Buffer Contents): Adjust documentation
for deleted variable.

2 years ago; Rename 'ffap--accept-or-reject-p'
Eli Zaretskii [Sat, 9 Jul 2022 09:45:21 +0000 (12:45 +0300)]
; Rename 'ffap--accept-or-reject-p'

* lisp/ffap.el (ffap-accept-or-reject-p): Renamed from
'ffap--accept-or-reject-p'; all users changed.  Doc fix.

2 years agoImprove drag-and-drop emulation time handling
Po Lu [Sat, 9 Jul 2022 08:18:35 +0000 (16:18 +0800)]
Improve drag-and-drop emulation time handling

* src/xselect.c (x_handle_selection_request): Use
display-specific pending DND time.
(x_set_pending_dnd_time): Delete function.
* src/xterm.c (x_dnd_do_unsupported_drop, handle_one_xevent):
Set dpyinfo->pending_dnd_time instead.
* src/xterm.h (struct x_display_info): New field
`pending_dnd_time'.  Make handling pending drops
display-specific to avoid interference when there are multiple
displays.

2 years ago; Improve wording of recently-changed doc strings.
Eli Zaretskii [Sat, 9 Jul 2022 07:39:57 +0000 (10:39 +0300)]
; Improve wording of recently-changed doc strings.

* lisp/simple.el (auto-save-mode):
* lisp/files.el (auto-save-visited-mode): Improve wording of the
doc strings.

2 years agoFix race conditions handling selection clear events on Haiku
Po Lu [Sat, 9 Jul 2022 04:50:06 +0000 (04:50 +0000)]
Fix race conditions handling selection clear events on Haiku

* src/haiku_select.cc (be_handle_clipboard_changed_message):
Include current clipboard count.
(be_selection_outdated_p): New function.
* src/haikuselect.c (haiku_handle_selection_clear): Ignore
outdated events.
(haiku_selection_disowned): New argument `count'.  Include it in
the timestamp field of the selection clear event.
* src/haikuselect.h: Update prototypes.
* src/systime.h: Define `Time' to an appropriate value on Haiku.

2 years agoMerge from origin/emacs-28
Stefan Kangas [Sat, 9 Jul 2022 04:30:38 +0000 (06:30 +0200)]
Merge from origin/emacs-28

3442de2edd Doc fix; don't mention obsolete variable
c4e251103b ; * lisp/textmodes/rst.el: Update URLs.

2 years agoFix redisplay after running selection hook on Haiku
Po Lu [Sat, 9 Jul 2022 01:16:05 +0000 (01:16 +0000)]
Fix redisplay after running selection hook on Haiku

* src/haikuselect.c (haiku_handle_selection_clear): Call
redisplay_preserve_echo_area.

2 years agoAdd new minor mode to deactivate the region once PRIMARY is lost
Po Lu [Sat, 9 Jul 2022 01:07:07 +0000 (09:07 +0800)]
Add new minor mode to deactivate the region once PRIMARY is lost

* doc/emacs/killing.texi (Primary Selection): Document new minor
mode `lost-selection-mode'.
* etc/NEWS: Announce new minor mode.
* lisp/select.el (lost-selection-function): New function.
(lost-selection-mode): New global minor mode.

2 years ago; * message.el (message-auto-save-directory): Clarify docstring.
Sean Whitton [Sat, 9 Jul 2022 00:28:51 +0000 (17:28 -0700)]
; * message.el (message-auto-save-directory): Clarify docstring.

2 years agoSpeed up querying for window manager support
Po Lu [Sat, 9 Jul 2022 00:05:30 +0000 (08:05 +0800)]
Speed up querying for window manager support

* src/xterm.c (handle_one_xevent): Clear net_supported_window if
it is destroyed.
(x_get_wm_check_window): New function.
(x_wm_supports_1): First try net_supported_window.  If it still
exists, don't ask for _NET_SUPPORTING_WM_CHECK.

2 years agoRemove now unused parameter TRACK from do_switch_frame.
Alan Mackenzie [Fri, 8 Jul 2022 20:19:03 +0000 (20:19 +0000)]
Remove now unused parameter TRACK from do_switch_frame.

* src/lisp.h (extern do_swith_frame declaration)
* src/frame.c (do_switch_frame): Remove parameter TRACK and its comment.
* src/frame.c (Fselect_frame, Fhandle_switch_frame, delete_frame)
* src/keyboard.c (quit_throw_to_read_char)
* src/minibuf.c (read_minibuf_unwind (twice))
* src/window.c (Fset_window_configuration): Remove argument TRACK.

2 years agoDoc fix; don't mention obsolete variable
Stefan Kangas [Fri, 8 Jul 2022 19:15:15 +0000 (21:15 +0200)]
Doc fix; don't mention obsolete variable

* src/window.c (Fset_window_hscroll): Doc fix; don't mention obsolete
variable.

2 years ago* lisp/isearch.el (isearch-search-fun-in-noncontiguous-region): New function.
Juri Linkov [Fri, 8 Jul 2022 17:58:33 +0000 (20:58 +0300)]
* lisp/isearch.el (isearch-search-fun-in-noncontiguous-region): New function.

(isearch-search-fun-in-text-property): Refactor body to
'search-within-boundaries', then call it (bug#14013).
(search-within-boundaries): New function refactored from
isearch-search-fun-in-text-property.

* test/lisp/isearch-tests.el: Add tests for new search functions.
(isearch--test-search-within-boundaries): New function.
(isearch--test-search-fun-in-text-property)
(isearch--test-search-fun-in-noncontiguous-region): New tests.

2 years agoDisplay the number of invisible matches for isearch-lazy-count (bug#40808)
Juri Linkov [Fri, 8 Jul 2022 17:47:11 +0000 (20:47 +0300)]
Display the number of invisible matches for isearch-lazy-count (bug#40808)

* lisp/isearch.el (lazy-count-invisible-format): New variable.
(isearch-mode): Set isearch-lazy-count-invisible to nil.
(isearch-lazy-count-format): Use lazy-count-invisible-format and
isearch-lazy-count-invisible.
(isearch-range-invisible): Handle the value 'can-be-opened' of
'search-invisible' and don't open overlays for it, just check
if these overlays can be opened.
(isearch-lazy-count-invisible): New variable.
(isearch-lazy-highlight-new-loop): Set isearch-lazy-count-invisible to nil.
(isearch-lazy-highlight-search): Let-bind search-invisible either to t
for non-nil isearch-lazy-count, or to 'can-be-opened'.
(isearch-lazy-highlight-match): Don't highlight matches intended
to be counted only, not highlighted.
(isearch-lazy-highlight-buffer-update): Separately count invisible
matches by isearch-lazy-count-invisible.

* lisp/info.el (Info-isearch-filter): Check if search-invisible is t.