]> git.eshelyaron.com Git - emacs.git/log
emacs.git
2 years agoFix warnings in my last commit
Stefan Kangas [Sun, 3 Jul 2022 12:47:53 +0000 (14:47 +0200)]
Fix warnings in my last commit

* lisp/textmodes/emacs-news-mode.el (outline): Require.

2 years agoImprove navigation keybindings in emacs-news-mode
Stefan Kangas [Sun, 3 Jul 2022 12:40:21 +0000 (14:40 +0200)]
Improve navigation keybindings in emacs-news-mode

* lisp/textmodes/emacs-news-mode.el (emacs-news-common-map): New
defvar-keymap.  Bind navigation commands as in 'org-mode' and
'outline-minor-mode'.
(emacs-news-mode-map): Inherit from 'emacs-news-common-map'.
(emacs-news-view-mode-map): New defvar-keymap; inherit from
'emacs-news-common-map'.

2 years agoMerge branch 'master' of git.savannah.gnu.org:/srv/git/emacs
Eli Zaretskii [Sun, 3 Jul 2022 12:39:05 +0000 (15:39 +0300)]
Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs

2 years agoFix implementation of 'reset' face values
Eli Zaretskii [Sun, 3 Jul 2022 12:37:50 +0000 (15:37 +0300)]
Fix implementation of 'reset' face values

* src/xfaces.c (Finternal_merge_in_global_face)
(gui_supports_face_attributes_p):  Only modify local copy of face
attributes when replacing 'reset' pseudo-values with real values.
(Bug#38771)

2 years ago; * etc/NEWS: Tag two items.
Stefan Kangas [Sun, 3 Jul 2022 12:34:44 +0000 (14:34 +0200)]
; * etc/NEWS: Tag two items.

2 years agoMove dired-clean-up-buffers-too to dired.el
Stefan Kangas [Sun, 3 Jul 2022 12:32:44 +0000 (14:32 +0200)]
Move dired-clean-up-buffers-too to dired.el

* lisp/dired-x.el (dired-clean-up-buffers-too)
(dired-clean-confirm-killing-deleted-buffers): Move from here...
* lisp/dired.el (dired-clean-up-buffers-too)
(dired-clean-confirm-killing-deleted-buffers): ...to
here.  (Bug#21981)
(dired-clean-up-after-deletion): Adjust documentation.
* etc/NEWS: Announce the change.

2 years agoFix `python-nav-beginning-of-defun' line continuation using backslash
kobarity [Sun, 3 Jul 2022 12:22:13 +0000 (14:22 +0200)]
Fix `python-nav-beginning-of-defun' line continuation using backslash

* lisp/progmodes/python.el (python-nav--beginning-of-defun): Allow
line continuation using backslash in defuns (bug#55702).
(python-info-looking-at-beginning-of-defun): Add CHECK-STATEMENT
argument.

2 years ago* lisp/dired-x.el (dired-omit-size-limit): Increase value.
Stefan Kangas [Sun, 3 Jul 2022 12:20:34 +0000 (14:20 +0200)]
* lisp/dired-x.el (dired-omit-size-limit): Increase value.

2 years agoMake string-limit with encoding return complete glyphs
Lars Ingebrigtsen [Sun, 3 Jul 2022 12:05:01 +0000 (14:05 +0200)]
Make string-limit with encoding return complete glyphs

* lisp/emacs-lisp/subr-x.el (string-limit): Return more correct
results in the CODING-SYSTEM case for coding systems with BOM and
charset designations (bug#48324).  Also amend the algorithm to
return complete glyphs, not just complete code points.

2 years agoImprove performance when rejecting XI touch event
Po Lu [Sun, 3 Jul 2022 11:48:55 +0000 (19:48 +0800)]
Improve performance when rejecting XI touch event

* src/xterm.c (handle_one_xevent): Avoid sync handling simple
error.

2 years agoFix streaming problems in nnimap-retrieve-headers
Lars Ingebrigtsen [Sun, 3 Jul 2022 10:57:29 +0000 (12:57 +0200)]
Fix streaming problems in nnimap-retrieve-headers

* lisp/gnus/nnimap.el (nnimap-retrieve-headers): Don't stream the
UID FETCH commands, since the server may return the results
out-of-order (bug#56332).

2 years agoAdd new function `seq-split'
Lars Ingebrigtsen [Sun, 3 Jul 2022 10:55:00 +0000 (12:55 +0200)]
Add new function `seq-split'

* doc/lispref/sequences.texi (Sequence Functions): Document it.

* lisp/emacs-lisp/seq.el (seq-split): New function.

* lisp/emacs-lisp/shortdoc.el (sequence): Mention it.

2 years agoelec-pair: Fix bug incorrectly hiding syntax-propertize-function
Allen Li [Sun, 3 Jul 2022 10:31:15 +0000 (12:31 +0200)]
elec-pair: Fix bug incorrectly hiding syntax-propertize-function

* lisp/elec-pair.el (electric-pair--with-text-syntax): New macro.
(electric-pair-syntax-info):
(electric-pair--balance-info):
(electric-pair--syntax-ppss, electric-pair--balance-info): Use it.
(electric-pair--with-uncached-syntax): Remove (bug#49629).

The main bug that this is fixing is `syntax-propertize-function' being
hidden in `electric-pair--balance-info' when the original syntax table
is to be used, not `electric-pair-text-syntax-table'.

Notably, this causes `electric-pair-mode' to often misbehave in HTML
files when pairing angle brackets.

This commit also flushes the cache before installing
`electric-pair-text-syntax-table', to prevent cached syntax for the
original table from affecting things.

2 years ago; * src/xfaces.c (Finternal_set_lisp_face_attribute): Fix last change.
Eli Zaretskii [Sun, 3 Jul 2022 10:22:42 +0000 (13:22 +0300)]
; * src/xfaces.c (Finternal_set_lisp_face_attribute): Fix last change.

2 years agoImprove efficiency of `x_frame_highlight' and `x_frame_unhighlight'
Po Lu [Sun, 3 Jul 2022 09:51:55 +0000 (17:51 +0800)]
Improve efficiency of `x_frame_highlight' and `x_frame_unhighlight'

* src/xterm.c (x_frame_highlight, x_frame_unhighlight): Don't
sync catching errors.

2 years ago* lisp/dired.el (dired-do-eww): New command.
Stefan Kangas [Sun, 3 Jul 2022 09:44:04 +0000 (11:44 +0200)]
* lisp/dired.el (dired-do-eww): New command.

2 years agoImprove dired-do-{info,man} error handling
Stefan Kangas [Sat, 2 Jul 2022 20:17:06 +0000 (22:17 +0200)]
Improve dired-do-{info,man} error handling

* lisp/dired.el (dired-do-man, dired-do-info): Use
'dired-get-file-for-visit' to get better error handling.
Interactive mode tagging.

2 years agoImplement pseudo-value 'reset' of face attrributes
Eli Zaretskii [Sun, 3 Jul 2022 09:30:24 +0000 (12:30 +0300)]
Implement pseudo-value 'reset' of face attrributes

* doc/lispref/display.texi (Face Attributes):
* etc/NEWS: Document the new pseudo-value 'reset'.

* src/xfaces.c (realize_named_face, lookup_derived_face)
(gui_supports_face_attributes_p, lookup_named_face)
(Finternal_merge_in_global_face, merge_named_face, merge_faces):
Handle the 'reset' pseudo-value of a face's attribute.
(syms_of_xfaces): New symbol 'reset'.
(RESET_P): New macro.
(check_lface_attrs, Finternal_set_lisp_face_attribute): Allow
'reset' as a value of any attribute except ':inherit'.
(Bug#38771)

2 years ago* lisp/leim/quail/indian.el ("malayalam-mozhi"): Set DETERMINISTIC.
James Thomas [Sat, 2 Jul 2022 09:23:54 +0000 (14:53 +0530)]
* lisp/leim/quail/indian.el ("malayalam-mozhi"): Set DETERMINISTIC.

2 years agoFix deadlocks with very old versions of libXi
Po Lu [Sun, 3 Jul 2022 06:33:02 +0000 (14:33 +0800)]
Fix deadlocks with very old versions of libXi

* src/xfns.c (setup_xi_event_mask, Fx_create_frame): Set
`xi_mask' ourselves if the version of libXi is too old to have
working XIGetSelectedEvents.
* src/xterm.c (x_destroy_window): Free `xi_mask' with xfree in
that case.

2 years ago; Merge from origin/emacs-28
Stefan Kangas [Sun, 3 Jul 2022 04:30:39 +0000 (06:30 +0200)]
; Merge from origin/emacs-28

The following commit was skipped:

d927181b1a * lisp/progmodes/cc-mode.el (c-common-init): Bind case-fol...

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

dc3d01a5af CC Mode: Fix a c-backward-token-2 call wrongly jumping bac...
e390396e68 Doc fixes; don't use obsolete names
c85f7c2e8a Don't refer to obsolete alias for insert-char
60ad45c5d2 Don't use obsolete face name in manoj-dark-theme

2 years agoSpeed up receiving drops over slow connections
Po Lu [Sun, 3 Jul 2022 01:41:32 +0000 (09:41 +0800)]
Speed up receiving drops over slow connections

* lisp/x-dnd.el (x-dnd-debug-errors): New variable.
(x-dnd-handle-drag-n-drop-event): Bind
`x-fast-protocol-requests' to t if that is off.

* src/xfns.c (Fx_change_window_property):
(Fx_delete_window_property):
* src/xselect.c (Fx_send_client_message, x_send_client_event):
Don't sync to check for errors if fast protocol requests are
enabled.

* src/xterm.c (x_catch_errors_for_lisp, x_check_errors_for_lisp)
(x_uncatch_errors_for_lisp): New functions.
(syms_of_xterm): New variable `x-fast-protocol-requests'.
* src/xterm.h: Update prototypes.

2 years agoREQUIRE-MATCH doc string clarification
Lars Ingebrigtsen [Sat, 2 Jul 2022 20:03:06 +0000 (22:03 +0200)]
REQUIRE-MATCH doc string clarification

* src/minibuf.c (Fcompleting_read):
* lisp/minibuffer.el (read-file-name): Clarify what the return
value is in the REQUIRE-MATCH function case.

2 years agoFix some typos in NEWS
Lars Ingebrigtsen [Sat, 2 Jul 2022 17:45:27 +0000 (19:45 +0200)]
Fix some typos in NEWS

2 years agoAdd sanity check for Emacsen distributed without .el files
Lars Ingebrigtsen [Sat, 2 Jul 2022 16:42:11 +0000 (18:42 +0200)]
Add sanity check for Emacsen distributed without .el files

* src/lread.c (maybe_swap_for_eln): Add sanity check for Emacsen
distributed without .el files (bug#48342).

2 years ago* lisp/progmodes/cc-mode.el (c-common-init): Bind case-fold-search to nil
Alan Mackenzie [Mon, 31 Jan 2022 17:44:59 +0000 (17:44 +0000)]
* lisp/progmodes/cc-mode.el (c-common-init): Bind case-fold-search to nil

Backport:  This fixes bug #53605.

2 years agoCC Mode: Fix a c-backward-token-2 call wrongly jumping back over macros.
Alan Mackenzie [Sat, 2 Jul 2022 16:12:59 +0000 (16:12 +0000)]
CC Mode: Fix a c-backward-token-2 call wrongly jumping back over macros.

This fixes bug #56256.

* lisp/progmodes/cc-fonts.el (c-font-lock-c++-lambda-captures): Replace a
c-backward-token-2, which could jump back too far leading to an infinite
loop, with a save-excursion to remember the point we've got to go back to.

2 years agoFilter out nul bytes when killing from a *grep* buffer
Lars Ingebrigtsen [Sat, 2 Jul 2022 15:58:56 +0000 (17:58 +0200)]
Filter out nul bytes when killing from a *grep* buffer

* lisp/progmodes/grep.el (grep-mode): Filter out the nul bytes
(bug#48321).

2 years agoAdd more separators to longlines-mode
Manuel Giraud [Sat, 2 Jul 2022 15:38:36 +0000 (17:38 +0200)]
Add more separators to longlines-mode

* lisp/obsolete/longlines.el (longlines-breakpoint-chars): New
custom to have multiple breakpoint chars.
(longlines-set-breakpoint): Add a target-column parameter and use
`longlines-breakpoint-chars'.
(longlines-find-break-backward, longlines-find-break-foreward):
Use `longlines-breakpoint-chars'.
(longlines-wrap-line): Do not insert space upon merging, just
remove the soft newline. Fix "space before tab" in indent.
(longlines-merge-lines-p): Use the new target-column parameter to
find out if the next line could be merged with the current one.
(longlines-encode-region): Do not replace a soft newline with a
space, just remove it.
* etc/NEWS: New user option 'longlines-breakpoint-chars'

2 years agoUnobsolete longlines-mode (bug#18589)
Lars Ingebrigtsen [Sat, 2 Jul 2022 15:33:33 +0000 (17:33 +0200)]
Unobsolete longlines-mode (bug#18589)

2 years agoUse help-key-binding face in text scale adjust messages
Stefan Kangas [Sat, 2 Jul 2022 15:32:14 +0000 (17:32 +0200)]
Use help-key-binding face in text scale adjust messages

* lisp/face-remap.el (text-scale-adjust)
(global-text-scale-adjust): Use substitute-command-keys.

2 years agoUse help-key-binding face in repeat-mode message
Stefan Kangas [Sat, 2 Jul 2022 14:59:14 +0000 (16:59 +0200)]
Use help-key-binding face in repeat-mode message

* lisp/repeat.el (repeat-echo-message-string): Use
substitute-command-keys.

2 years agoMake dired-jump repeatable in repeat-mode
Stefan Kangas [Sat, 2 Jul 2022 14:56:39 +0000 (16:56 +0200)]
Make dired-jump repeatable in repeat-mode

* lisp/dired.el (dired-jump-map): New variable.
(dired-jump): Put 'repeat-map' property with 'dired-jump-map'.

2 years ago; * etc/NEWS: Fix typo in recently-added entry.
Eli Zaretskii [Sat, 2 Jul 2022 14:56:05 +0000 (17:56 +0300)]
; * etc/NEWS: Fix typo in recently-added entry.

2 years ago; Minor fixes for 'global-text-scale-adjust'
Eli Zaretskii [Sat, 2 Jul 2022 14:52:23 +0000 (17:52 +0300)]
; Minor fixes for 'global-text-scale-adjust'

* doc/emacs/display.texi (Text Scale): Improve indexing.

* lisp/mwheel.el (mouse-wheel-global-text-scale): Doc fix.
* lisp/face-remap.el (global-text-scale-adjust-resizes-frames):
Fix a typo.
(global-text-scale-adjust-limits): Doc fix.
(Bug#48307)

2 years agoMove dired-info and dired-man from dired-x to dired
Stefan Kangas [Sat, 2 Jul 2022 13:41:43 +0000 (15:41 +0200)]
Move dired-info and dired-man from dired-x to dired

* lisp/dired-x.el (dired-bind-man, dired-bind-info): Change into
defvars and make obsolete.
(dired-extra-startup): Doc fix.
(dired-info, dired-man): Move from here...
* lisp/dired.el (dired-do-info, dired-do-man): ...to here and
rename.  (Bug#21981)

* lisp/dired.el (dired-mode-map): Bind 'I' and 'N' to 'dired-do-info'
and 'dired-do-man'.

* doc/misc/dired-x.texi (Miscellaneous Commands): Remove documentation
of 'dired-info' and 'dired-man'.
* doc/emacs/dired.texi (Dired Enter): Document 'dired-do-info' and
'dired-do-man'.
* etc/NEWS: Announce the above changes.

2 years agoPrefer defvar-keymap in nxml/*.el
Stefan Kangas [Sat, 2 Jul 2022 10:25:03 +0000 (12:25 +0200)]
Prefer defvar-keymap in nxml/*.el

* lisp/nxml/nxml-mode.el (nxml-mode-map):
* lisp/nxml/nxml-outln.el (nxml-outline-prefix-map)
(nxml-outline-show-map, nxml-outline-hiding-tag-map)
(nxml-outline-showing-tag-map): Prefer defvar-keymap.

2 years agoFix error handling for XCB Xlib
Po Lu [Sat, 2 Jul 2022 13:55:22 +0000 (21:55 +0800)]
Fix error handling for XCB Xlib

* src/xterm.c (xm_send_drop_message)
(xm_send_top_level_enter_message, xm_send_drag_motion_message)
(xm_send_top_level_leave_message, x_dnd_compute_toplevels)
(x_dnd_send_enter, x_dnd_send_position, x_dnd_send_leave)
(x_dnd_send_drop, handle_one_xevent, x_catch_errors_with_handler)
(x_request_can_fail, x_clean_failable_requests)
(x_ignore_errors_for_next_request, x_stop_ignoring_errors)
(x_uncatch_errors, x_check_errors, x_had_errors_p, x_error_handler)
(frame_set_mouse_pixel_position, x_focus_frame): Record serial
sequences instead of simply the next request when ignoring a
single request.  Use XNextRequest instead of NextRequest, since
the latter is unreliable when using Xlib built with XCB.

* src/xterm.h (struct x_failable_request): New struct..
(struct x_display_info): Make failable request variables the
right type.

2 years agoFix display disconnect when tooltip frame is alive
Po Lu [Sat, 2 Jul 2022 13:21:33 +0000 (21:21 +0800)]
Fix display disconnect when tooltip frame is alive

* src/xterm.c (x_connection_closed): Don't dereference nil when
loop finds a tooltip frame.

2 years agoCommand for global adjustments to the default face
Gregory Heytings [Sat, 2 Jul 2022 13:40:45 +0000 (15:40 +0200)]
Command for global adjustments to the default face

* lisp/face-remap.el (global-text-scale-adjust): New command.
(text-scale-adjust): Refer to the new related command.
(global-text-scale-adjust-resizes-frames): New user option.

* lisp/mwheel.el (mouse-wheel-scroll-amount): Add the new command
to the mouse wheel scrolling events.
(mouse-wheel-global-text-scale): New function.
(mouse-wheel-mode): Use the new function with mouse-wheel-mode.

* doc/emacs/display.texi (Text Scale): Document the new command and
the new user option.

* etc/NEWS: Mention the new command and its bindings, and the new
user option.

2 years agoAdd a comment about buffer_local_value/find_symbol_value
Lars Ingebrigtsen [Sat, 2 Jul 2022 13:22:13 +0000 (15:22 +0200)]
Add a comment about buffer_local_value/find_symbol_value

* src/data.c: Note that buffer_local_value is very similar
(bug#48281).

2 years agoAllow NUL characters in JSON input
Lars Ingebrigtsen [Sat, 2 Jul 2022 13:06:24 +0000 (15:06 +0200)]
Allow NUL characters in JSON input

* src/json.c (Fjson_parse_string, Fjson_parse_buffer): Allow NUL
characters in JSON (bug#48274).

2 years agoMake comint-watch-for-password-prompt more resilient
Lars Ingebrigtsen [Sat, 2 Jul 2022 12:21:00 +0000 (14:21 +0200)]
Make comint-watch-for-password-prompt more resilient

* lisp/comint.el (comint-watch-for-password-prompt): Don't try to
send commands to the process after it's exited (bug#56336).  (This
commonly happens when invoked via `M-&'.)

2 years ago; Fix typos.
Mattias Engdegård [Sat, 2 Jul 2022 10:01:18 +0000 (12:01 +0200)]
; Fix typos.

2 years agoPreserve connection-local settings in dired
Michael Albinus [Sat, 2 Jul 2022 11:19:04 +0000 (13:19 +0200)]
Preserve connection-local settings in dired

* lisp/dired-aux.el (dired-shell-command):
Preserve connection-local settings.  (Bug#56333)

2 years agoAdd native-compile-prune-cache command
Lars Ingebrigtsen [Sat, 2 Jul 2022 10:59:41 +0000 (12:59 +0200)]
Add native-compile-prune-cache command

* lisp/emacs-lisp/comp.el (native-compile-prune-cache): New
command (bug#48108).

2 years agonative-comp-eln-load-path doc string fix
Lars Ingebrigtsen [Sat, 2 Jul 2022 10:54:14 +0000 (12:54 +0200)]
native-comp-eln-load-path doc string fix

* src/comp.c (syms_of_comp): Fix grammar in doc string.

2 years agoDoc fixes; don't use obsolete names
Stefan Kangas [Sat, 2 Jul 2022 08:38:57 +0000 (10:38 +0200)]
Doc fixes; don't use obsolete names

* etc/compilation.txt:
* lisp/mh-e/mh-funcs.el (mh-kill-folder): Don't use obsolete
names.

2 years agoDon't refer to obsolete alias for insert-char
Stefan Kangas [Sat, 2 Jul 2022 09:36:50 +0000 (11:36 +0200)]
Don't refer to obsolete alias for insert-char

* lisp/leim/quail/persian.el: Don't refer to obsolete alias for
insert-char.

2 years agoDon't use obsolete face name in manoj-dark-theme
Stefan Kangas [Sat, 2 Jul 2022 08:58:45 +0000 (10:58 +0200)]
Don't use obsolete face name in manoj-dark-theme

* etc/themes/manoj-dark-theme.el (change-log-acknowledgment): Don't
use obsolete/non-existent face name.

2 years ago* src/sheap.h (STATIC_HEAP_SIZE): Double the size of static heap.
Eli Zaretskii [Sat, 2 Jul 2022 09:16:33 +0000 (12:16 +0300)]
* src/sheap.h (STATIC_HEAP_SIZE): Double the size of static heap.

2 years agoCompletely get rid of races during Motif drag window creation
Po Lu [Sat, 2 Jul 2022 08:41:45 +0000 (16:41 +0800)]
Completely get rid of races during Motif drag window creation

* src/xterm.c (x_special_window_exists_p): New function.
(xm_get_drag_window_1): Rework workflow and display grabbing.

2 years ago; Fix typos.
Stefan Kangas [Sat, 2 Jul 2022 08:20:23 +0000 (10:20 +0200)]
; Fix typos.

2 years ago* src/xfns.c (Fx_server_input_extension_version): Fix typo.
Stefan Kangas [Sat, 2 Jul 2022 07:48:20 +0000 (09:48 +0200)]
* src/xfns.c (Fx_server_input_extension_version): Fix typo.

2 years agoMerge from origin/emacs-28
Stefan Kangas [Sat, 2 Jul 2022 07:33:51 +0000 (09:33 +0200)]
Merge from origin/emacs-28

1c3d107cb5 Fix "C-u C-x =" for SPC
7e33618bbc ; * src/fns.c (Frequire): Fix a typo in the doc string.  (...
6908309827 Doc fixes: don't refer to some obsolete items
dc3cb749f3 Remove obsolete cust-print from elisp index
9ffbbddf8e * admin/make-tarball.txt: Minor clarifications.
f5421104e9 Fix external image conversion on MS-Windows
6f22631a63 * doc/emacs/buffers.texi (Indirect Buffers): Mention modif...

# Conflicts:
# doc/emacs/buffers.texi
# lisp/emacs-lisp/nadvice.el
# lisp/image/image-converter.el

2 years agoFix repeated "the"
Lele Gaifax [Fri, 1 Jul 2022 16:03:57 +0000 (18:03 +0200)]
Fix repeated "the"

* configure.ac (EMACS_CONFIG_FEATURES):
* etc/NEWS:
* lisp/dnd.el (dnd-begin-text-drag):
* src/pgtkfns.c (Fx_display_mm_height, Fx_display_mm_width):
(Fx_display_backing_store, Fx_display_visual_class):
* src/xterm.c: Fix repeated "the".  (Bug#56341)

Copyright-paperwork-exempt: yes

2 years agoFix fallout from bug#50143
Visuwesh [Thu, 30 Jun 2022 14:06:41 +0000 (19:36 +0530)]
Fix fallout from bug#50143

* lisp/language/ind-util.el (indian-tml-base-table)
(indian-tml-base-digits-table): Add TAMIL OM sign and more Sanskrit
consonants to the table (bug#50143) (bug#56323).

2 years agoImprove rcirc's CertFP documentation
Omar Polo [Fri, 1 Jul 2022 08:50:19 +0000 (10:50 +0200)]
Improve rcirc's CertFP documentation

* doc/misc/rcirc.texi: Clarify meaning of key and password
* lisp/net/rcirc.el (rcirc-authinfo): Add example

2 years agoFix drag-and-drop from Chromium family browsers
Po Lu [Sat, 2 Jul 2022 06:06:28 +0000 (14:06 +0800)]
Fix drag-and-drop from Chromium family browsers

* lisp/x-dnd.el (x-dnd-copy-types): New defcustom.
(x-dnd-default-test-function): Check if data type warrants using
`copy'.
(x-dnd-do-direct-save): Offer application/octet-stream as well.

2 years ago* lisp/ruler-mode.el (ruler-mode-map): Use defvar-keymap.
Stefan Kangas [Sat, 2 Jul 2022 04:25:01 +0000 (06:25 +0200)]
* lisp/ruler-mode.el (ruler-mode-map): Use defvar-keymap.

2 years ago* lisp/epa-mail.el (epa-mail-mode-map): Use defvar-keymap.
Stefan Kangas [Sat, 2 Jul 2022 04:04:55 +0000 (06:04 +0200)]
* lisp/epa-mail.el (epa-mail-mode-map): Use defvar-keymap.

2 years agoFont lock \\`' command substitutions in docstrings
Stefan Kangas [Sat, 2 Jul 2022 03:35:15 +0000 (05:35 +0200)]
Font lock \\`' command substitutions in docstrings

* lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2):
Support \\`' command substitutions.

2 years agoAdd interactive XDS test
Po Lu [Sat, 2 Jul 2022 02:17:57 +0000 (10:17 +0800)]
Add interactive XDS test

* test/lisp/dnd-tests.el (dnd-tests-direct-save): New test.

2 years ago* editfns.c (Fbyte_to_string): Use `make_unibyte_string`
Stefan Monnier [Sat, 2 Jul 2022 01:29:45 +0000 (21:29 -0400)]
* editfns.c (Fbyte_to_string): Use `make_unibyte_string`

2 years agoReturn the correct action from the Lisp side of drag-and-drop
Po Lu [Sat, 2 Jul 2022 01:06:36 +0000 (09:06 +0800)]
Return the correct action from the Lisp side of drag-and-drop

* lisp/x-dnd.el (x-dnd-handle-drag-n-drop-event): Select
`window' when handling internal DND events.
(x-dnd-handle-unsupported-drop): Return an appropriate action.
* src/keyboard.c (kbd_buffer_get_event):
* src/termhooks.h (enum event_kind): Delete
`UNSUPPORTED_DROP_EVENT'.
* src/xterm.c (x_dnd_send_unsupported_drop): Set flags instead
of recording input event.
(x_clear_dnd_monitors): Rename to `x_clear_dnd_variables'.  Also
clear unsupported drop data.
(x_dnd_begin_drag_and_drop): Run unsupported drop function
inline (and safely), and use its return value if it returned a
symbol.
(syms_of_xterm): Update doc string of
`x-dnd-unsupported-drop-function'.

* src/xterm.h: Update declarations.

2 years agoUse command substitution in kmacro.el
Stefan Kangas [Fri, 1 Jul 2022 18:18:31 +0000 (20:18 +0200)]
Use command substitution in kmacro.el

* lisp/kmacro.el (kmacro-bind-to-key, kmacro-view-macro-repeat):
Use command substitution.

2 years ago* doc/misc/erc.texi (Connecting): Fix typo.
Stefan Kangas [Fri, 1 Jul 2022 06:50:47 +0000 (08:50 +0200)]
* doc/misc/erc.texi (Connecting): Fix typo.

2 years agoFix "C-u C-x =" for SPC
Eli Zaretskii [Fri, 1 Jul 2022 14:17:36 +0000 (17:17 +0300)]
Fix "C-u C-x =" for SPC

* lisp/descr-text.el (describe-char): Don't report 'nobreak-space'
face for SPC.  (Bug#56337)

2 years ago; * doc/misc/erc.texi: Fix typo
F. Jason Park [Fri, 1 Jul 2022 12:54:03 +0000 (05:54 -0700)]
; * doc/misc/erc.texi: Fix typo

2 years ago; Fix regexp in ERC test-server utility
F. Jason Park [Fri, 1 Jul 2022 12:47:31 +0000 (05:47 -0700)]
; Fix regexp in ERC test-server utility

* test/lisp/erc/resources/erc-d/erc-d-i.el (erc-d-i--tag-unescaped-regexp):
Thanks to Mattias and relint for catching this.

2 years agoFix quoting of file names in 'ctags'
Eli Zaretskii [Fri, 1 Jul 2022 13:17:40 +0000 (16:17 +0300)]
Fix quoting of file names in 'ctags'

* lib-src/etags.c (main) [WINDOWSNT || MSDOS]: Quote file names
according to the rules of the system shells.

2 years agoAdd support for <mark> in shr
Lars Ingebrigtsen [Fri, 1 Jul 2022 11:45:52 +0000 (13:45 +0200)]
Add support for <mark> in shr

* lisp/net/shr.el (shr-mark): New face (bug#48211).
(shr-tag-mark): New function

2 years agoFix elisp-byte-compile-buffer requirements
Lars Ingebrigtsen [Fri, 1 Jul 2022 11:19:31 +0000 (13:19 +0200)]
Fix elisp-byte-compile-buffer requirements

* lisp/progmodes/elisp-mode.el (elisp-byte-compile-buffer):
Require bytecomp so that byte-compile-dest-file-function is
defined.  (The byte compiler didn't catch this, because it's
defined in bytecomp.)

2 years agoFix typo in Property Search manual entry
dick r. chiang [Fri, 1 Jul 2022 10:49:36 +0000 (12:49 +0200)]
Fix typo in Property Search manual entry

* doc/lispref/text.texi (Property Search): Fix typo (bug#56329).

2 years agoMake time-stamp-tests.el work in a Norwegian language enviroment
Lars Ingebrigtsen [Fri, 1 Jul 2022 10:12:49 +0000 (12:12 +0200)]
Make time-stamp-tests.el work in a Norwegian language enviroment

The short version of names for days/month is not necessary the same as
limiting the string with a #n operator.  For instance:

(format-time-string "%^A" time)
=> "FREDAG"

(format-time-string "%^a" time)
=> "FR."

(time-stamp-string "%#3a" time)
=> "FRE"

2 years agoDocument XDS stuff
Po Lu [Fri, 1 Jul 2022 10:10:39 +0000 (18:10 +0800)]
Document XDS stuff

* doc/emacs/frames.texi (Drag and Drop):
* doc/lispref/frames.texi (Drag and Drop): Add documentation
about XDS features.
* etc/NEWS: Tag entry.

2 years agoMake it easier to debug nnimap-retrieve-headers
Lars Ingebrigtsen [Fri, 1 Jul 2022 09:49:29 +0000 (11:49 +0200)]
Make it easier to debug nnimap-retrieve-headers

* lisp/gnus/nnimap.el (nnimap--max-retrieve-headers): New variable
to ease debugging.
(nnimap-retrieve-headers): Use it.

2 years agoMake the emoji-zoom commands use a transient map for repetition
Lars Ingebrigtsen [Fri, 1 Jul 2022 09:11:47 +0000 (11:11 +0200)]
Make the emoji-zoom commands use a transient map for repetition

* lisp/international/emoji.el (emoji-zoom-increase)
(emoji-zoom-decrease): Use a transient map for convenience.

2 years ago; * test/lisp/erc/erc-networks-tests.el: escape `*`s in regexp
Mattias Engdegård [Fri, 1 Jul 2022 09:00:41 +0000 (11:00 +0200)]
; * test/lisp/erc/erc-networks-tests.el: escape `*`s in regexp

2 years agoExpand file names read from XDS functions
Po Lu [Fri, 1 Jul 2022 08:32:37 +0000 (16:32 +0800)]
Expand file names read from XDS functions

* lisp/x-dnd.el (x-dnd-handle-xds-drop): Expand file names
before use.  Some GUI dialogs read un-expanded file names.

2 years agoPrevent XdndPosition messages from rarely being sent out of band
Po Lu [Fri, 1 Jul 2022 08:17:11 +0000 (16:17 +0800)]
Prevent XdndPosition messages from rarely being sent out of band

* src/xterm.c (handle_one_xevent): Don't clear
`x_dnd_waiting_for_status_window' if a pending position message
was sent in reply to an XdndStatus event.

2 years agoSupport receiving XDS drops correctly
Po Lu [Fri, 1 Jul 2022 08:12:45 +0000 (16:12 +0800)]
Support receiving XDS drops correctly

* etc/NEWS: Announce new feature.  It is not yet documented.
* lisp/x-dnd.el (x-dnd-known-types): Add XdndDirectSave0.
(x-dnd-direct-save-function): New defcustom.
(x-dnd-xdnd-to-action): Add `direct-save'.
(x-dnd-maybe-call-test-function): If XDS is present, use `direct-save'.
(x-dnd-find-type): New function.
(x-dnd-handle-xdnd): Handle XDS position and drop messages.
(x-dnd-handle-direct-save): Don't use local-file-uri if nil.
(x-dnd-save-direct): New function.
(x-dnd-handle-octet-stream-for-drop):
(x-dnd-handle-xds-drop): New functions.

2 years ago; Fix documentation of recent ERC changes
Eli Zaretskii [Fri, 1 Jul 2022 07:13:07 +0000 (10:13 +0300)]
; Fix documentation of recent ERC changes

* lisp/erc/erc.el (erc-inhibit-multiline-input)
(erc-ask-about-multiline-input): Doc fixes.

* doc/misc/erc.texi (Connecting): Fix typos, grammar, wording,
punctuation, markup, and indexing.

2 years ago; Tag ERC channel-buffers test as unstable
F. Jason Park [Fri, 1 Jul 2022 05:43:41 +0000 (22:43 -0700)]
; Tag ERC channel-buffers test as unstable

* test/lisp/erc/erc-networks-tests.el (erc-networks--id,
erc-networks--id-create): Attempt to fix arity of mocked `float-time'.

* test/lisp/erc/erc-scenarios-base-reuse-buffers.el
(erc-scenarios-base-reuse-buffers-channel-buffers--disabled): Tag as
being unstable.

2 years ago; * src/fns.c (Frequire): Fix a typo in the doc string. (Bug#56328)
Brennan Vincent [Thu, 30 Jun 2022 18:24:48 +0000 (14:24 -0400)]
; * src/fns.c (Frequire): Fix a typo in the doc string.  (Bug#56328)

Copyright-paperwork-exempt: yes

2 years agoUpdate publicsuffix.txt from upstream
Stefan Kangas [Fri, 1 Jul 2022 04:01:14 +0000 (06:01 +0200)]
Update publicsuffix.txt from upstream

* etc/publicsuffix.txt: Update from
https://publicsuffix.org/list/public_suffix_list.dat
dated 2022-06-29 19:13:08 UTC.

2 years agoAdd tests for XDS protocol support
Po Lu [Fri, 1 Jul 2022 03:31:25 +0000 (11:31 +0800)]
Add tests for XDS protocol support

* test/lisp/x-dnd-tests.el (x-dnd-tests-xds-property-value): New
variable.
(x-window-property): Handle new kind of window property.
(x-dnd-tests-xds-target-dir, x-dnd-tests-xds-name)
(x-dnd-tests-xds-include-hostname): New variables.
(x-dnd-tests-call-xds-converter): New function.
(x-begin-drag, x-change-window-property):
(x-delete-window-property): New replacement functions.
(x-dnd-tests-do-direct-save-internal): New function.
(x-dnd-tests-do-direct-save): New test.

2 years agoFix `clipboard-yank' inserting off the kill ring instead of CLIPBOARD
Po Lu [Fri, 1 Jul 2022 02:23:13 +0000 (10:23 +0800)]
Fix `clipboard-yank' inserting off the kill ring instead of CLIPBOARD

* lisp/select.el (gui-last-cut-in-clipboard)
(gui-last-cut-in-primary): New variables.
(gui-select-text): Set those variables.
(gui--selection-value-internal, gui-selection-value): Don't
return nil if the last cut did not own the chosen
selection.  (bug#56325)

2 years agoDisable middle click selection emulation during XDS
Po Lu [Fri, 1 Jul 2022 01:10:34 +0000 (09:10 +0800)]
Disable middle click selection emulation during XDS

* doc/lispref/frames.texi (Drag and Drop): Document new
variable.
* lisp/x-dnd.el (x-dnd-do-direct-save): Disable drop emulation
during XDS drag-and-drop.

* src/keyboard.c (kbd_buffer_get_event): Handle recorded value.
* src/xterm.c (x_dnd_do_unsupported_drop): Return if new
variable is nil.
(x_dnd_send_unsupported_drop): Record value of new variable in
events.
(x_dnd_begin_drag_and_drop): Handle recorded value.
(syms_of_xterm): New variable `x-dnd-use-unsupported-drop'.

2 years ago; Help ERC test fixture better withstand reordering
F. Jason Park [Fri, 1 Jul 2022 00:15:25 +0000 (17:15 -0700)]
; Help ERC test fixture better withstand reordering

* test/lisp/erc/erc-tests.el (erc-tests--with-process-input-spy):
Shadow hook to prevent the erc-button module from interfering with
tests using this helper.

2 years agoUpdate ERC's Info doc with network-ID related changes
F. Jason Park [Fri, 18 Jun 2021 11:25:44 +0000 (04:25 -0700)]
Update ERC's Info doc with network-ID related changes

* doc/misc/erc.texi: Update the `erc' and `erc-tls' entry-point
sections with the new :id keyword parameter.  Expand the auth-info
related information in the passwords section.  Remove all mention of
the variable `erc-rename-buffers', whose "on" behavior has been made
permanent.

* etc/ERC-NEWS: Add new section for future 5.5 release.

2 years agoOptionally prevent sending multiline input in ERC
F. Jason Park [Wed, 27 Apr 2022 09:27:32 +0000 (02:27 -0700)]
Optionally prevent sending multiline input in ERC

* lisp/erc/erc.el (erc-inhibit-multiline-input): Add option to cap the
number of lines to be sent before admonishing the user.
(erc-ask-about-multiline-input): Add option to ask instead of warning
user when `erc-inhibit-multiline-input' is reached.
(erc--check-prompt-input-for-excess-lines): Add validator to possibly
warn when too many lines are submitted for transmission.

* test/lisp/erc/erc-tests.el
(erc--check-prompt-input-for-excess-lines): Add test.
(Bug#54536)

2 years agoImprove ERC's handling of multiline prompt input
F. Jason Park [Mon, 21 Mar 2022 12:40:16 +0000 (05:40 -0700)]
Improve ERC's handling of multiline prompt input

* lisp/erc/erc.el (erc--pre-send-split-functions): Add new internal
hook allowing members to revise individual lines before sending.  This
was created with an eye toward possibly exporting it publicly as a
customizable option.
(erc-last-input-time): Tweak meaning of variable to match likely
original intent, which is that it's only updated on successful calls
to `erc-send-current-line'.
(erc--discard-trailing-multiline-nulls): Conditionally truncate list
of lines to be sent, skipping trailing blanks.  This constitutes a
behavioral change.  But, considering the nature of the bug being
fixed, it is thought to be justified.
(erc--input-split): Add new internal struct containing split input
lines and flag for command detection.
(erc--input-line-delim-regexp): Add regex var for splitting multiline
prompt input.
(erc--blank-in-multiline-p): Add helper for detecting blank lines.
(erc--check-prompt-input-for-multiline-blanks,
erc--check-prompt-input-for-point-in-bounds,
erc--check-prompt-input-for-running-process): New functions to
encapsulate logic for various pre-flight idiot checks.
(erc--check-prompt-input-functions): Add new hook for validating
prompt input prior to clearing it, internal for now.
(erc-send-current-line): Pre-screen for blank lines and bail out if
necessary.
(erc-send-input): Add optional param to skip checking for blank lines.
Call hook `erc--pre-send-split-functions'.

* test/lisp/erc/erc-tests.el (erc-ring-previous-command): Use new test
helper.
(erc--input-line-delim-regexp,
erc--blank-in-multiline-input-p): Add tests.
(erc-tests--send-prep, erc-tests--set-fake-server-process,
erc-tests--with-process-input-spy): Add test helpers.
(erc--check-prompt-input-functions, erc-send-current-line,
erc-send-whitespace-lines): Add tests.
(Bug#54536)

2 years agoFix regression in erc-send-input-line
F. Jason Park [Tue, 22 Mar 2022 02:21:57 +0000 (19:21 -0700)]
Fix regression in erc-send-input-line

* lisp/erc/erc.el (erc-send-input-line): Restore remedial single-space
padding to ensure empty messages typed at the prompt without an
explicit /msg aren't rejected by the server.  This behavior is only
noticeable when `erc-send-whitespace-lines' is active.

* test/lisp/erc/erc-tests.el (erc-process-input-line): Add trailing
newline to more correctly simulate how it's actually called by
`erc-send-input'. (Bug#50008)

2 years agoStandardize auth-source queries in ERC
F. Jason Park [Mon, 16 Aug 2021 11:38:18 +0000 (04:38 -0700)]
Standardize auth-source queries in ERC

* lisp/erc/erc.el (erc-password): Deprecate variable only used by
`erc-select-read-args'.  Server passwords are primarily used as
surrogates for other forms of authentication.  Such use is common but
nonstandard and often discouraged in favor of the de facto standard,
SASL.  Folks in the habit of invoking `erc(-tls)' interactively should
be encouraged to use auth-source instead.
(erc-select-read-args): Before this change, `erc-select-read-args'
offered to use the value of a non-nil `erc-password' as the :password
argument for `erc' and `erc-tls', referring to it as the "default"
password.  And when `erc-prompt-for-password' was nil and
`erc-password' wasn't, the latter was passed along unconditionally.
This only further complicated an already confusing situation for new
users, who in most cases shouldn't be worried about sending a PASS
command at all.  Until SASL arrives, they should provide server
passwords manually or learn to use auth-source.
(erc-auth-source-server-function, erc-auth-source-join-function): New
user options for retrieving a password externally, ostensibly by
calling `auth-source-search'.
(erc--auth-source-determine-params-defaults): New helper for
`erc--auth-source-search' with potential for exporting publicly in the
future.  Favors :host and :port fields above others.  Prioritizes
network IDs over announced servers and dialed endpoints.
(erc--auth-source-determine-params-merge): Add new function for
merging contextual and default parameters.  This is another contender
for possible exporting.
(erc--auth-source-search): New function for consulting auth-source and
sorting the result as filtered and prioritized by the previously
mentioned helpers.
(erc-auth-source-search): New function to serve as default
value for auth-source query-function options.
(erc-server-join-channel): Use user option for consulting auth-source
facility.  Also accept nil for first argument (instead of server).
(erc-cmd-JOIN): Use above-mentioned facilities when joining new
channel.  Omit server when calling `erc-server-join-channel'.  Don't
filter target buffers twice.  Don't call `switch-to-buffer', which
would create phantom buffers with names like target/server that were
never used.  IOW, only switch to existing target buffers.
(erc--compute-server-password): Add new helper function for
determining password.
(erc-open, erc-determine-parameters): Move password figuring from the
first to the latter.

* lisp/erc/erc-services.el
(erc-auth-source-services-function): Add new option for consulting
auth-source in a NickServ context.
(erc-nickserv-get-password): Pass network-context ID, when looking up
password in `erc-nickserv-passwords' and when formatting prompt for
user input.
(erc-nickserv-passwords): Add comment to custom option definition type
tag.

* test/lisp/erc/erc-services-tests.el: Add new test file for above
changes.  For now, stash auth-source-related tests here until a
suitable home can be found.

* lisp/erc/erc-join.el (erc-autojoin--join): Don't pass session-like
entity from `erc-autojoin-channels-alist' match to
`erc-server-join-channel'.  Allow that function to decide for itself
which host to look up if necessary.

* test/lisp/erc/resources/base/auth-source/foonet.eld: New file.
* test/lisp/erc/resources/base/auth-source/nopass.eld: New file.
* test/lisp/erc/resources/erc-scenarios-common.el: New file.
* test/lisp/erc/resources/services/auth-source/libera.eld: New file.
* test/lisp/erc/erc-scenarios-auth-source.el: New file.
* test/lisp/erc/erc-scenarios-base-reuse-buffers.el: New file.
* test/lisp/erc/erc-scenarios-join-auth-source.el: New file.
* test/lisp/erc/resources/base/reuse-buffers/channel/barnet.eld: New file.
* test/lisp/erc/resources/base/reuse-buffers/channel/foonet.eld: New file.
* test/lisp/erc/resources/join/auth-source/foonet.eld: New file.
(Bug#48598)

2 years agoFavor network identities in erc-join
F. Jason Park [Sun, 30 May 2021 07:50:50 +0000 (00:50 -0700)]
Favor network identities in erc-join

* lisp/erc/erc-join.el (erc-autojoin-server-match): Favor network
identities, falling back on old definition.
(erc-autojoin--join): Add new helper containing common code from
hookees `erc-autojoin-after-ident' and `erc-autojoin-channels'.
(erc-autojoin-after-ident, erc-autojoin-channels): No longer make a
point of returning nil because the hooks they're registered on,
`erc-nickserv-identified-hook' and `erc-after-connect', don't stop on
success.
(erc-autojoin--mutate): Add helper for `erc-autojoin-add' and
`erc-autojoin-remove'.
(erc-autojoin-add, erc-autojoin-remove): Favor given network
identities, over networks, when matching keys for
`erc-autojoin-channels-alist'.

* test/lisp/erc/erc-scenarios-base-reconnect.el: New file.
* test/lisp/erc/erc-scenarios-join-netid-newcmd-id.el: New file.
* test/lisp/erc/erc-scenarios-join-netid-newcmd.el: New file.
* test/lisp/erc/erc-scenarios-join-netid-recon-id.el: New file.
* test/lisp/erc/erc-scenarios-join-netid-recon.el: New file.
* test/lisp/erc/resources/erc-scenarios-common.el: New file.
* test/lisp/erc/resources/join/legacy/foonet.eld: New file.
* test/lisp/erc/resources/join/network-id/barnet.eld: New file.
* test/lisp/erc/resources/join/network-id/foonet-again.eld: New file.
* test/lisp/erc/resources/join/network-id/foonet.eld: New file.
* test/lisp/erc/resources/join/reconnect/foonet-again.eld: New file.
* test/lisp/erc/resources/join/reconnect/foonet.eld: New file.

2 years agoDon't call erc-auto-query twice on PRIVMSG
F. Jason Park [Fri, 7 May 2021 08:52:41 +0000 (01:52 -0700)]
Don't call erc-auto-query twice on PRIVMSG

* lisp/erc/erc-backend.el (erc-server-JOIN): Use `erc--open-target'
instead of `erc-join'.
(erc-server-PRIVMSG): Don't call `erc-auto-query' at all, and instead
borrow the portion of its logic that detects when a query buffer
should be created instead of a channel buffer.

* lisp/erc/erc.el (erc-cmd-QUERY): Update the mode line explicitly
after calling `erc-query' in case it's needed after `erc-setup-buffer'
runs. Simplify.
(erc-query, erc--open-target): Replace uses of `erc-query'
with `erc--open-target' and make the former obsolete.  Don't call
`erc-update-mode-line' because `erc-open' already does that.
(erc-auto-query): Make this function obsolete.  It was previously only
used in erc-backend.el and only sewed confusion.
(erc-query-on-unjoined-chan-privmsg): Add note questioning its role.
It was previously only used by the now deprecated `erc-auto-query'.

* test/lisp/erc/erc-scenarios-misc.el
(erc-scenarios-base-mask-target-routing): Add test for server masks.
* test/lisp/erc/resources/base/mask-target-routing/foonet.eld: New file.

2 years agoRegister erc-kill-buffer-function locally
F. Jason Park [Thu, 28 Oct 2021 04:13:24 +0000 (21:13 -0700)]
Register erc-kill-buffer-function locally

* lisp/erc/erc.el (erc-kill-buffer-function): Don't add hook when
loading file.  Move to major-mode setup and make buffer-local instead.
Depends on tests in bug#48598.

2 years agoAdd user-oriented test scenarios for ERC
F. Jason Park [Thu, 13 May 2021 12:55:22 +0000 (05:55 -0700)]
Add user-oriented test scenarios for ERC

* test/lisp/erc/erc-scenarios-base-association-nick.el: New file.
* test/lisp/erc/erc-scenarios-base-association-samenet.el: New file.
* test/lisp/erc/erc-scenarios-base-association.el: New file.
* test/lisp/erc/erc-scenarios-base-compat-rename-bouncer.el: New file.
* test/lisp/erc/erc-scenarios-base-misc-regressions.el: New file.
* test/lisp/erc/erc-scenarios-base-netid-bouncer-id.el: New file.
* test/lisp/erc/erc-scenarios-base-netid-bouncer-recon-base.el: New file.
* test/lisp/erc/erc-scenarios-base-netid-bouncer-recon-both.el: New file.
* test/lisp/erc/erc-scenarios-base-netid-bouncer-recon-id.el: New file.
* test/lisp/erc/erc-scenarios-base-netid-bouncer.el: New file.
* test/lisp/erc/erc-scenarios-base-netid-samenet.el: New file.
* test/lisp/erc/erc-scenarios-base-reconnect.el: New file.
* test/lisp/erc/erc-scenarios-base-renick.el: New file.
* test/lisp/erc/erc-scenarios-base-reuse-buffers.el: New file.
* test/lisp/erc/erc-scenarios-base-unstable.el: New file.
* test/lisp/erc/erc-scenarios-base-upstream-recon-soju.el: New file.
* test/lisp/erc/erc-scenarios-base-upstream-recon-znc.el: New file.
* test/lisp/erc/erc-scenarios-misc.el: New file.
* test/lisp/erc/erc-scenarios-services-misc.el: New file.
* test/lisp/erc/resources/base/assoc/bouncer-history/barnet.eld: New file.
* test/lisp/erc/resources/base/assoc/bouncer-history/foonet.eld: New file.
* test/lisp/erc/resources/base/assoc/bumped/again.eld: New file.
* test/lisp/erc/resources/base/assoc/bumped/foisted.eld: New file.
* test/lisp/erc/resources/base/assoc/bumped/refoisted.eld: New file.
* test/lisp/erc/resources/base/assoc/bumped/renicked.eld: New file.
* test/lisp/erc/resources/base/assoc/multi-net/barnet.eld: New file.
* test/lisp/erc/resources/base/assoc/multi-net/foonet.eld: New file.
* test/lisp/erc/resources/base/assoc/reconplay/again.eld: New file.
* test/lisp/erc/resources/base/assoc/reconplay/foonet.eld: New file.
* test/lisp/erc/resources/base/assoc/samenet/chester.eld: New file.
* test/lisp/erc/resources/base/assoc/samenet/tester.eld: New file.
* test/lisp/erc/resources/base/assoc/samenet/tester2.eld: New file.
* test/lisp/erc/resources/base/channel-buffer-revival/foonet.eld: New file.
* test/lisp/erc/resources/base/flood/soju.eld: New file.
* test/lisp/erc/resources/base/gapless-connect/barnet.eld: New file.
* test/lisp/erc/resources/base/gapless-connect/foonet.eld: New file.
* test/lisp/erc/resources/base/gapless-connect/pass-stub.eld: New file.
* test/lisp/erc/resources/base/netid/bouncer/barnet-again.eld: New file.
* test/lisp/erc/resources/base/netid/bouncer/barnet-drop.eld: New file.
* test/lisp/erc/resources/base/netid/bouncer/barnet.eld: New file.
* test/lisp/erc/resources/base/netid/bouncer/foonet-again.eld: New file.
* test/lisp/erc/resources/base/netid/bouncer/foonet-drop.eld: New file.
* test/lisp/erc/resources/base/netid/bouncer/foonet.eld: New file.
* test/lisp/erc/resources/base/netid/bouncer/stub-again.eld: New file.
* test/lisp/erc/resources/base/netid/samenet/chester.eld: New file.
* test/lisp/erc/resources/base/netid/samenet/tester.eld: New file.
* test/lisp/erc/resources/base/reconnect/aborted-dupe.eld: New file.
* test/lisp/erc/resources/base/reconnect/aborted.eld: New file.
* test/lisp/erc/resources/base/reconnect/options-again.eld: New file.
* test/lisp/erc/resources/base/reconnect/options.eld: New file.
* test/lisp/erc/resources/base/reconnect/timer-last.eld: New file.
* test/lisp/erc/resources/base/reconnect/timer.eld: New file.
* test/lisp/erc/resources/base/renick/queries/bouncer-barnet.eld: New file.
* test/lisp/erc/resources/base/renick/queries/bouncer-foonet.eld: New file.
* test/lisp/erc/resources/base/renick/queries/solo.eld: New file.
* test/lisp/erc/resources/base/renick/self/auto.eld: New file.
* test/lisp/erc/resources/base/renick/self/manual.eld: New file.
* test/lisp/erc/resources/base/renick/self/qual-chester.eld: New file.
* test/lisp/erc/resources/base/renick/self/qual-tester.eld: New file.
* test/lisp/erc/resources/base/reuse-buffers/server/barnet.eld: New file.
* test/lisp/erc/resources/base/reuse-buffers/server/foonet.eld: New file.
* test/lisp/erc/resources/base/upstream-reconnect/soju-barnet.eld: New file.
* test/lisp/erc/resources/base/upstream-reconnect/soju-foonet.eld: New file.
* test/lisp/erc/resources/base/upstream-reconnect/znc-barnet.eld: New file.
* test/lisp/erc/resources/base/upstream-reconnect/znc-foonet.eld: New file.
* test/lisp/erc/resources/erc-scenarios-common.el: New file.
* test/lisp/erc/resources/networks/announced-missing/foonet.eld: New file.
* test/lisp/erc/resources/services/password/libera.eld: New file.

Add test cases for locking down fundamental client behavior, much of
it involving the relationship between buffers and connections.  Also
add accompanying resources subdir containing canned dialog scripts and
common code needed by various tests.  For test cases demoing the
problematic behavior originally described in the initial report, see
update #4 on the bug tracker thread for bug#48598.  Most reside in a
file named test/lisp/erc/erc-scenarios-48598.el introduced by the
patch "Add user-oriented test scenarios for ERC".