From: "J.P." <jp@neverwas.me>
To: 50006@debbugs.gnu.org
Subject: bug#50006: 28.0.50; remove deprecated option erc-send-pre-hook
Date: Wed, 11 Aug 2021 07:03:12 -0700 [thread overview]
Message-ID: <87k0ksjcyn.fsf@neverwas.me> (raw)
[-- Attachment #1: Type: text/plain, Size: 3502 bytes --]
Tags: patch
Severity: minor
I don't actually need this for any of the more delusional mega patches I
currently have on offer [1], so feel free to flat out deny. (However, I
will say that it does unclutter some of the main message-sending
business, which may not be the worst thing ever.)
Note: I guess we should probably double check this doesn't interfere
with any of the ELPA plans that ERC's maintainer has cooking. Thanks.
[1] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=48598
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=49860
In GNU Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.30, cairo version 1.17.4)
of 2021-08-09 built on localhost
Repository revision: aeec97fae0ccfcc4dc406a5e0e4c0a94b834cac4
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12011000
System Description: Fedora 34 (Workstation Edition)
Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY
INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS
X11 XDBE XIM XPM GTK3 ZLIB
Important settings:
value of $LANG: en_US.UTF-8
value of $XMODIFIERS: @im=ibus
locale-coding-system: utf-8-unix
Major mode: Lisp Interaction
Minor modes in effect:
tooltip-mode: t
global-eldoc-mode: t
eldoc-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
line-number-mode: t
indent-tabs-mode: t
transient-mark-mode: t
Load-path shadows:
None found.
Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
rfc822 mml mml-sec epa derived epg epg-config gnus-util rmail
rmail-loaddefs auth-source cl-seq eieio eieio-core cl-macs
eieio-loaddefs password-cache json map text-property-search time-date
subr-x seq byte-opt gv bytecomp byte-compile cconv mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader cl-loaddefs
cl-lib sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils
iso-transl tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar
dnd fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode elisp-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer cl-generic
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice button loaddefs faces cus-face macroexp files
window text-properties overlay sha1 md5 base64 format env code-pages
mule custom widget hashtable-print-readable backquote threads dbusbind
inotify lcms2 dynamic-setting system-font-setting font-render-setting
cairo move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)
Memory information:
((conses 16 51538 6355)
(symbols 48 6607 1)
(strings 32 18255 1368)
(string-bytes 1 616656)
(vectors 16 14292)
(vector-slots 8 185252 10153)
(floats 8 21 47)
(intervals 56 205 0)
(buffers 992 10))
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Remove-deprecated-variable-erc-send-pre-hook.patch --]
[-- Type: text/x-patch, Size: 6042 bytes --]
From ec9d3be1efbdc22bb8256b722d552d7371f77835 Mon Sep 17 00:00:00 2001
From: "F. Jason Park" <jp@neverwas.me>
Date: Fri, 23 Jul 2021 22:14:44 -0700
Subject: [PATCH] Remove deprecated variable erc-send-pre-hook
* lisp/erc/erc.el (erc-send-pre-hook, erc-insert-this,
erc-send-input): Remove all traces of the hook and the state variable
from doc strings and comments and, most importantly, from the function
erc-send-input.
---
lisp/erc/erc.el | 85 +++++++++++++------------------------------------
1 file changed, 22 insertions(+), 63 deletions(-)
diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el
index 73202016ba..c1491bd864 100644
--- a/lisp/erc/erc.el
+++ b/lisp/erc/erc.el
@@ -1007,27 +1007,6 @@ erc-insert-pre-hook
:group 'erc-hooks
:type 'hook)
-(defcustom erc-send-pre-hook nil
- "Hook called first when some text is sent through `erc-send-current-line'.
-It gets called with one argument, STRING.
-
-To change the text that will be sent, set the variable `str' which is
-used in `erc-send-current-line'.
-
-To change the text inserted into the buffer without changing the text
-that will be sent, use `erc-send-modify-hook' instead.
-
-Filtering functions can set `erc-send-this' to nil to avoid sending of
-that particular string at all and `erc-insert-this' to prevent
-inserting that particular string into the buffer.
-
-Note that it's useless to set `erc-send-this' to nil and
-`erc-insert-this' to t. ERC is sane enough to not insert the text
-anyway."
- :group 'erc-hooks
- :type 'hook)
-(make-obsolete-variable 'erc-send-pre-hook 'erc-pre-send-functions "27.1")
-
(defcustom erc-pre-send-functions nil
"Special hook run to possibly alter the string that is sent.
The functions are called with one argument, an `erc-input' struct,
@@ -1037,7 +1016,10 @@ erc-pre-send-functions
`string': The current input string.
`insertp': Whether the string should be inserted into the erc buffer.
- `sendp': Whether the string should be sent to the irc server."
+ `sendp': Whether the string should be sent to the irc server.
+
+Note that modifications to `erc-insert-this' will be ignored. Update
+the field `insertp' instead."
:group 'erc
:type 'hook
:version "27.1")
@@ -1047,12 +1029,6 @@ erc-insert-this
Functions on `erc-insert-pre-hook' can set this variable to nil
if they wish to avoid insertion of a particular string.")
-(defvar erc-send-this t
- "Send the text to the target or not.
-Functions on `erc-send-pre-hook' can set this variable to nil
-if they wish to avoid sending of a particular string.")
-(make-obsolete-variable 'erc-send-this 'erc-pre-send-functions "27.1")
-
(defcustom erc-insert-modify-hook ()
"Insertion hook for functions that will change the text's appearance.
This hook is called just after `erc-insert-pre-hook' when the value
@@ -1082,8 +1058,8 @@ erc-insert-done-hook
(defcustom erc-send-modify-hook nil
"Sending hook for functions that will change the text's appearance.
-This hook is called just after `erc-send-pre-hook' when the values
-of `erc-send-this' and `erc-insert-this' are both t.
+This hook is called just after `erc-send-pre-hook' when the value
+of `erc-insert-this' is t.
While this hook is run, narrowing is in effect and `current-buffer' is
the buffer where the text got inserted.
@@ -5565,42 +5541,25 @@ erc-send-input
(beep))
nil)
(t
- ;; This dynamic variable is used by `erc-send-pre-hook'. It's
- ;; obsolete, and when it's finally removed, this binding should
- ;; also be removed.
- (with-suppressed-warnings ((lexical str))
- (defvar str))
- (let ((str input)
- (erc-insert-this t)
- (erc-send-this t)
- state)
- ;; The calling convention of `erc-send-pre-hook' is that it
- ;; should change the dynamic variable `str' or set
- ;; `erc-send-this' to nil. This has now been deprecated:
- ;; Instead `erc-pre-send-functions' is used as a filter to do
- ;; allow both changing and suppressing the string.
- (run-hook-with-args 'erc-send-pre-hook input)
- (setq state (make-erc-input :string str ;May be != from `input' now!
- :insertp erc-insert-this
- :sendp erc-send-this))
+ (let ((erc-insert-this t)
+ (state (make-erc-input :string input :insertp t :sendp t)))
+ ;; The `erc-pre-send-functions' filter allows both modifying and
+ ;; supressing inserted text. It replaces `erc-send-pre-hook',
+ ;; which did the former via the dynamic var `str' and the latter
+ ;; via `erc-send-this', now `erc-input-sendp'.
(run-hook-with-args 'erc-pre-send-functions state)
- (when (and (erc-input-sendp state)
- erc-send-this)
- (let ((string (erc-input-string state)))
+ (when (erc-input-sendp state)
+ (let ((string (erc-input-string state)))
(if (or (string-search "\n" string)
(not (string-match erc-command-regexp string)))
- (mapc
- (lambda (line)
- (mapc
- (lambda (line)
- ;; Insert what has to be inserted for this.
- (when (erc-input-insertp state)
- (erc-display-msg line))
- (erc-process-input-line (concat line "\n")
- (null erc-flood-protect) t))
- (or (and erc-flood-protect (erc-split-line line))
- (list line))))
- (split-string string "\n"))
+ (dolist (line (split-string string "\n"))
+ (dolist (line (or (and erc-flood-protect (erc-split-line line))
+ (list line)))
+ ;; Insert what has to be inserted for this.
+ (when (erc-input-insertp state)
+ (erc-display-msg line))
+ (erc-process-input-line (concat line "\n")
+ (null erc-flood-protect) t)))
(erc-process-input-line (concat string "\n") t nil))
t))))))
--
2.31.1
next reply other threads:[~2021-08-11 14:03 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-11 14:03 J.P. [this message]
2021-09-19 16:36 ` bug#50006: 28.0.50; remove deprecated option erc-send-pre-hook Stefan Kangas
2021-09-19 22:54 ` J.P.
2021-09-20 7:27 ` Stefan Kangas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87k0ksjcyn.fsf@neverwas.me \
--to=jp@neverwas.me \
--cc=50006@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).