[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
emacs-29 c46e93b1f50 2/2: Explain ERC 5.5 regressions in new version 5.5
From: |
F. Jason Park |
Subject: |
emacs-29 c46e93b1f50 2/2: Explain ERC 5.5 regressions in new version 5.5.0.29.1 |
Date: |
Wed, 26 Apr 2023 09:46:13 -0400 (EDT) |
branch: emacs-29
commit c46e93b1f50c9a6f7143f347d96a6385bcdf3a05
Author: F. Jason Park <jp@neverwas.me>
Commit: F. Jason Park <jp@neverwas.me>
Explain ERC 5.5 regressions in new version 5.5.0.29.1
* doc/misc/erc.texi: Bump version to 5.5.0.29.1.
* etc/ERC-NEWS: Don't hype bugged option `erc-reconnect-display'.
* lisp/erc/erc-dcc.el (erc-dcc-do-GET-command): Add comment explaining
parsing bug in ERC 5.5 (bug#62444).
* lisp/erc/erc-networks.el (erc-networks-on-MOTD-end): Mention known
/MOTD bug in error notice so people don't waste energy reporting
it (bug#62151).
* lisp/erc/erc.el: Change Version header to 5.5.0.29.1. Don't bother
updating the `customize-package-emacs-version-alist' entry
because no option defaults are affected.
(erc-version): Change version to 5.5.0.29.1.
(erc-reconnect-display, erc-query-on-unjoined-chan-privmsg): Add
warning to doc strings and `custom-set' functions. It's believed that
these bugs degrade the user experience significantly enough to warrant
such mentions (bug#62833).
(erc-query): Fix erroneous redirect string in deprecation spec.
Do not merge to master.
---
doc/misc/erc.texi | 2 +-
etc/ERC-NEWS | 4 +---
lisp/erc/erc-dcc.el | 6 +++++-
lisp/erc/erc-networks.el | 7 +++++--
lisp/erc/erc.el | 41 ++++++++++++++++++++++++++++++++---------
5 files changed, 44 insertions(+), 16 deletions(-)
diff --git a/doc/misc/erc.texi b/doc/misc/erc.texi
index ad30546c9d5..7f26b9ed181 100644
--- a/doc/misc/erc.texi
+++ b/doc/misc/erc.texi
@@ -2,7 +2,7 @@
@c %**start of header
@setfilename ../../info/erc.info
@settitle ERC Manual
-@set ERCVER 5.5
+@set ERCVER 5.5.0.29.1
@set ERCDIST as distributed with Emacs @value{EMACSVER}
@include docstyle.texi
@syncodeindex fn cp
diff --git a/etc/ERC-NEWS b/etc/ERC-NEWS
index 434bfab94e9..9672a86345b 100644
--- a/etc/ERC-NEWS
+++ b/etc/ERC-NEWS
@@ -80,9 +80,7 @@ can now opt for an improved 'window-noselect' instead. It
still
offers the same pronounced visual cue when connecting and joining but
now avoids any hijacking of the active window as well.
-Beyond this, additional flexibility is now available for controlling
-the behavior of newly created target buffers during reconnection.
-See the option 'erc-reconnect-display' for more.
+(Edited for ERC 5.5.0.29.1 in Emacs 29.1.)
** Improved handling of multiline prompt input.
This means better detection and handling of intervening and trailing
diff --git a/lisp/erc/erc-dcc.el b/lisp/erc/erc-dcc.el
index 4c557e0e0f9..8fc30fddb46 100644
--- a/lisp/erc/erc-dcc.el
+++ b/lisp/erc/erc-dcc.el
@@ -508,7 +508,11 @@ At least one of TYPE and NICK must be provided."
"Do a DCC GET command. NICK is the person who is sending the file.
FILE is the filename. If FILE is split into multiple arguments,
re-join the arguments, separated by a space.
-PROC is the server process."
+PROC is the server process.
+
+WARNING: the /DCC GET command is bugged in ERC 5.5 (Emacs 29).
+File names containing the string \" -\" are not honored. If you
+need a fix immediately, see Info node `(erc) Upgrading'."
(let* ((args (seq-group-by (lambda (s) (eq ?- (aref s 0))) (cons nick file)))
(flags (prog1 (cdr (assq t args))
(setq args (cdr (assq nil args))
diff --git a/lisp/erc/erc-networks.el b/lisp/erc/erc-networks.el
index 95fd8990c99..e2ba59a3c47 100644
--- a/lisp/erc/erc-networks.el
+++ b/lisp/erc/erc-networks.el
@@ -1494,8 +1494,11 @@ to be a false alarm. If `erc-reuse-buffers' is nil, let
(memq (erc--target-symbol erc--target)
erc-networks--bouncer-targets)))
proc)
- (let ((m (concat "Unexpected state detected. Please report via "
- (substitute-command-keys "\\[erc-bug]") ".")))
+ (let ((m (concat "Unexpected state detected. If you've just issued an"
+ " /MOTD, please know that the command is bugged in ERC"
+ " 5.5 (Emacs 29) but will be fixed in the next release."
+ " Otherwise, please report this occurrence via"
+ (substitute-command-keys " \\[erc-bug]."))))
(erc-display-error-notice parsed m))))
;; For now, retain compatibility with erc-server-NNN-functions.
diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el
index 69bdb5d71b1..c7e1645ec26 100644
--- a/lisp/erc/erc.el
+++ b/lisp/erc/erc.el
@@ -12,7 +12,7 @@
;; David Edmondson (dme@dme.org)
;; Michael Olson (mwolson@gnu.org)
;; Kelvin White (kwhite@gnu.org)
-;; Version: 5.5
+;; Version: 5.5.0.29.1
;; Package-Requires: ((emacs "27.1") (compat "29.1.3.4"))
;; Keywords: IRC, chat, client, Internet
;; URL: https://www.gnu.org/software/emacs/erc.html
@@ -71,7 +71,7 @@
(require 'iso8601)
(eval-when-compile (require 'subr-x) (require 'url-parse))
-(defconst erc-version "5.5"
+(defconst erc-version "5.5.0.29.1"
"This version of ERC.")
(defvar erc-official-location
@@ -1495,9 +1495,19 @@ The available choices are:
This only affects automatic reconnections and is ignored when
issuing a /reconnect command or reinvoking `erc-tls' with the
same args (assuming success, of course). See `erc-join-buffer'
-for a description of possible values."
+for a description of possible values.
+
+WARNING: this option is bugged in ERC 5.5 (Emacs 29). Setting it
+to anything other than nil results in the chosen value being
+permanently adopted by all other buffer-display options for the
+remainder of the ERC session. If you need this fixed
+immediately, see Info node `(erc) Upgrading'."
:package-version '(ERC . "5.5")
:group 'erc-buffers
+ :set (lambda (sym val)
+ (when (set sym val)
+ (lwarn 'erc :warning "Setting `%s' to `%s' is currently bugged; %s"
+ sym val "see doc string for more information.")))
:type '(choice (const :tag "Use value of `erc-join-buffer'" nil)
(const :tag "Split window and select" window)
(const :tag "Split window, don't select" window-noselect)
@@ -4501,7 +4511,7 @@ See `erc-default-server-hook'."
"Open a query buffer on TARGET using SERVER-BUFFER.
To change how this query window is displayed, use `let' to bind
`erc-join-buffer' before calling this."
- (declare (obsolete "bind `erc-cmd-query' and call `erc-cmd-QUERY'" "29.1"))
+ (declare (obsolete "call `erc-open' in a live server buffer" "29.1"))
(unless (buffer-live-p server-buffer)
(error "Couldn't switch to server buffer"))
(with-current-buffer server-buffer
@@ -4524,16 +4534,29 @@ a new window, but not to select it. See the
documentation for
(const :tag "Use current buffer" buffer)
(const :tag "Use current buffer" t)))
-;; FIXME either retire this or put it to use after determining how
-;; it's meant to work. Clearly, the doc string does not describe
-;; current behavior. It's currently only used by the obsolete
-;; function `erc-auto-query'.
(defcustom erc-query-on-unjoined-chan-privmsg t
"If non-nil create query buffer on receiving any PRIVMSG at all.
This includes PRIVMSGs directed to channels. If you are using an IRC
bouncer, such as dircproxy, to keep a log of channels when you are
-disconnected, you should set this option to t."
+disconnected, you should set this option to t.
+
+WARNING: this option was mistakenly removed from ERC 5.5's client
+code, so setting it to nil is temporarily ineffective. That is,
+ERC now always creates a buffer when receiving a PRIVMSG directed
+at a channel for which none exists. And despite this option's
+name and its doc string's use of \"query\" to refer to any
+conversation with a target, it did not previously allow for
+opting out of buffer creation for direct messages (at least not
+in Emacs 27 and 28). However, such behavior has always been and
+will continue to be available by setting `erc-auto-query' to nil.
+If needing to restore pre-5.5 functionality immediately, see Info
+node `(erc) Upgrading'."
:group 'erc-query
+ :set (lambda (sym val)
+ (unless (set sym val)
+ (lwarn 'erc :warning
+ "Setting `%s' to nil is currently ineffective; %s"
+ sym "see doc string for details.")))
:type 'boolean)
(defcustom erc-format-query-as-channel-p t