unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#50006: 28.0.50; remove deprecated option erc-send-pre-hook
@ 2021-08-11 14:03 J.P.
  2021-09-19 16:36 ` Stefan Kangas
  0 siblings, 1 reply; 4+ messages in thread
From: J.P. @ 2021-08-11 14:03 UTC (permalink / raw)
  To: 50006

[-- 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


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* bug#50006: 28.0.50; remove deprecated option erc-send-pre-hook
  2021-08-11 14:03 bug#50006: 28.0.50; remove deprecated option erc-send-pre-hook J.P.
@ 2021-09-19 16:36 ` Stefan Kangas
  2021-09-19 22:54   ` J.P.
  0 siblings, 1 reply; 4+ messages in thread
From: Stefan Kangas @ 2021-09-19 16:36 UTC (permalink / raw)
  To: J.P.; +Cc: 50006, Amin Bandali

"J.P." <jp@neverwas.me> writes:

> 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

Copying in the ERC maintainer Amin Bandali here.

Amin, could you help review this patch?





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#50006: 28.0.50; remove deprecated option erc-send-pre-hook
  2021-09-19 16:36 ` Stefan Kangas
@ 2021-09-19 22:54   ` J.P.
  2021-09-20  7:27     ` Stefan Kangas
  0 siblings, 1 reply; 4+ messages in thread
From: J.P. @ 2021-09-19 22:54 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: 50006, Amin Bandali

Stefan Kangas <stefan@marxist.se> writes:

> Copying in the ERC maintainer Amin Bandali here.
>
> Amin, could you help review this patch?

Thanks Stefan. I should save y'all the trouble and admit that I rather
brashly submitted this without first taking a moment to get a feel for
how long Emacs retains deprecated items. (Nothing to do with the recent
ELPA proposal, BTW [1]; just sheer ignorance on my part.) So unless I'm
preempted, I'll send a control message in the next 24 or so to shut this
bad boy down. Thanks again.

[1] https://lists.gnu.org/archive/html/emacs-devel/2021-09/msg01384.html





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#50006: 28.0.50; remove deprecated option erc-send-pre-hook
  2021-09-19 22:54   ` J.P.
@ 2021-09-20  7:27     ` Stefan Kangas
  0 siblings, 0 replies; 4+ messages in thread
From: Stefan Kangas @ 2021-09-20  7:27 UTC (permalink / raw)
  To: J.P.; +Cc: 50006-done, Amin Bandali

"J.P." <jp@neverwas.me> writes:

> Thanks Stefan. I should save y'all the trouble and admit that I rather
> brashly submitted this without first taking a moment to get a feel for
> how long Emacs retains deprecated items. (Nothing to do with the recent
> ELPA proposal, BTW [1]; just sheer ignorance on my part.)

Ah, so this only removes some deprecated variables?  Yes, we tend to
leave them for a very long time, up to five major releases.  They are
then generally removed en masse; in Emacs 28 we are removing most things
deprecated in Emacs 23.

In Emacs 29, I expect that we will remove most things deprecated in
Emacs 24.

> So unless I'm preempted, I'll send a control message in the next 24 or
> so to shut this bad boy down. Thanks again.

You can just add "-close" to the email address of the bug number to
close it, as in "50006-done@debbugs.gnu.org".

I did that now, mostly so that we don't forget about it.





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-09-20  7:27 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-11 14:03 bug#50006: 28.0.50; remove deprecated option erc-send-pre-hook J.P.
2021-09-19 16:36 ` Stefan Kangas
2021-09-19 22:54   ` J.P.
2021-09-20  7:27     ` Stefan Kangas

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).