diff options
| author | F. Jason Park | 2022-04-04 22:38:22 -0700 |
|---|---|---|
| committer | F. Jason Park | 2022-06-30 15:03:26 -0700 |
| commit | 0f52e7ac68457ca8beb22cd382b1637fed35fd73 (patch) | |
| tree | e179bbd79daa6a1f27a65ba673ae1629d515b59e /lisp/erc | |
| parent | a3311dbce0008a23d8d6626ae6245d96ce3a20b2 (diff) | |
| download | emacs-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.el | 1 | ||||
| -rw-r--r-- | lisp/erc/erc.el | 23 |
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. |