aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/erc
diff options
context:
space:
mode:
authorF. Jason Park2022-04-04 22:38:22 -0700
committerF. Jason Park2022-06-30 15:03:26 -0700
commit0f52e7ac68457ca8beb22cd382b1637fed35fd73 (patch)
treee179bbd79daa6a1f27a65ba673ae1629d515b59e /lisp/erc
parenta3311dbce0008a23d8d6626ae6245d96ce3a20b2 (diff)
downloademacs-0f52e7ac68457ca8beb22cd382b1637fed35fd73.tar.gz
emacs-0f52e7ac68457ca8beb22cd382b1637fed35fd73.zip
Rework mutual dependency between erc and erc-backend
* lisp/erc/erc.el: Declare needed variables exported by erc-backend.el as special near the top of the file, and only require `erc-backend' after providing `erc' as a feature at the very end. * lisp/erc/erc-backend.el: Don't preemptively provide `erc-backend'. * test/lisp/erc/erc-tests.el (erc--meta--backend-dependencies): Add utility test to scrape for unused vars that may accumulate over time. (Bug#54825)
Diffstat (limited to 'lisp/erc')
-rw-r--r--lisp/erc/erc-backend.el1
-rw-r--r--lisp/erc/erc.el23
2 files changed, 22 insertions, 2 deletions
diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el
index 1252a5b4fac..2f0b523d1b2 100644
--- a/lisp/erc/erc-backend.el
+++ b/lisp/erc/erc-backend.el
@@ -102,7 +102,6 @@
102;; There's a fairly strong mutual dependency between erc.el and erc-backend.el. 102;; There's a fairly strong mutual dependency between erc.el and erc-backend.el.
103;; Luckily, erc.el does not need erc-backend.el for macroexpansion whereas the 103;; Luckily, erc.el does not need erc-backend.el for macroexpansion whereas the
104;; reverse is true: 104;; reverse is true:
105(provide 'erc-backend)
106(require 'erc) 105(require 'erc)
107 106
108;;;; Variables and options 107;;;; Variables and options
diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el
index ff482d49338..c4689a4b78b 100644
--- a/lisp/erc/erc.el
+++ b/lisp/erc/erc.el
@@ -130,7 +130,26 @@
130 "Running scripts at startup and with /LOAD." 130 "Running scripts at startup and with /LOAD."
131 :group 'erc) 131 :group 'erc)
132 132
133(require 'erc-backend) 133;; Defined in erc-backend
134(defvar erc--server-reconnecting)
135(defvar erc-channel-members-changed-hook)
136(defvar erc-server-367-functions)
137(defvar erc-server-announced-name)
138(defvar erc-server-connect-function)
139(defvar erc-server-connected)
140(defvar erc-server-current-nick)
141(defvar erc-server-filter-data)
142(defvar erc-server-lag)
143(defvar erc-server-last-sent-time)
144(defvar erc-server-parameters)
145(defvar erc-server-process)
146(defvar erc-server-quitting)
147(defvar erc-server-reconnect-count)
148(defvar erc-server-reconnecting)
149(defvar erc-session-client-certificate)
150(defvar erc-session-connector)
151(defvar erc-session-port)
152(defvar erc-session-server)
134 153
135;; tunable connection and authentication parameters 154;; tunable connection and authentication parameters
136 155
@@ -7023,6 +7042,8 @@ Otherwise, connect to HOST:PORT as USER and /join CHANNEL."
7023 7042
7024(provide 'erc) 7043(provide 'erc)
7025 7044
7045(require 'erc-backend)
7046
7026;; Deprecated. We might eventually stop requiring the goodies automatically. 7047;; Deprecated. We might eventually stop requiring the goodies automatically.
7027;; IMPORTANT: This require must appear _after_ the above (provide 'erc) to 7048;; IMPORTANT: This require must appear _after_ the above (provide 'erc) to
7028;; avoid a recursive require error when byte-compiling the entire package. 7049;; avoid a recursive require error when byte-compiling the entire package.