mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-17 10:27:41 +00:00
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)
This commit is contained in:
parent
a3311dbce0
commit
0f52e7ac68
3 changed files with 43 additions and 2 deletions
|
|
@ -102,7 +102,6 @@
|
|||
;; There's a fairly strong mutual dependency between erc.el and erc-backend.el.
|
||||
;; Luckily, erc.el does not need erc-backend.el for macroexpansion whereas the
|
||||
;; reverse is true:
|
||||
(provide 'erc-backend)
|
||||
(require 'erc)
|
||||
|
||||
;;;; Variables and options
|
||||
|
|
|
|||
|
|
@ -130,7 +130,26 @@
|
|||
"Running scripts at startup and with /LOAD."
|
||||
:group 'erc)
|
||||
|
||||
(require 'erc-backend)
|
||||
;; Defined in erc-backend
|
||||
(defvar erc--server-reconnecting)
|
||||
(defvar erc-channel-members-changed-hook)
|
||||
(defvar erc-server-367-functions)
|
||||
(defvar erc-server-announced-name)
|
||||
(defvar erc-server-connect-function)
|
||||
(defvar erc-server-connected)
|
||||
(defvar erc-server-current-nick)
|
||||
(defvar erc-server-filter-data)
|
||||
(defvar erc-server-lag)
|
||||
(defvar erc-server-last-sent-time)
|
||||
(defvar erc-server-parameters)
|
||||
(defvar erc-server-process)
|
||||
(defvar erc-server-quitting)
|
||||
(defvar erc-server-reconnect-count)
|
||||
(defvar erc-server-reconnecting)
|
||||
(defvar erc-session-client-certificate)
|
||||
(defvar erc-session-connector)
|
||||
(defvar erc-session-port)
|
||||
(defvar erc-session-server)
|
||||
|
||||
;; tunable connection and authentication parameters
|
||||
|
||||
|
|
@ -7023,6 +7042,8 @@ Otherwise, connect to HOST:PORT as USER and /join CHANNEL."
|
|||
|
||||
(provide 'erc)
|
||||
|
||||
(require 'erc-backend)
|
||||
|
||||
;; Deprecated. We might eventually stop requiring the goodies automatically.
|
||||
;; IMPORTANT: This require must appear _after_ the above (provide 'erc) to
|
||||
;; avoid a recursive require error when byte-compiling the entire package.
|
||||
|
|
|
|||
|
|
@ -48,6 +48,27 @@
|
|||
(cl-letf (((symbol-function 'read-string) (lambda (&rest _) "1d")))
|
||||
(should (equal (erc--read-time-period "foo: ") 86400))))
|
||||
|
||||
(ert-deftest erc--meta--backend-dependencies ()
|
||||
(with-temp-buffer
|
||||
(insert-file-contents-literally
|
||||
(concat (file-name-sans-extension (symbol-file 'erc)) ".el"))
|
||||
(let ((beg (search-forward ";; Defined in erc-backend"))
|
||||
(end (search-forward "\n\n"))
|
||||
vars)
|
||||
(save-excursion
|
||||
(save-restriction
|
||||
(narrow-to-region beg end)
|
||||
(goto-char (point-min))
|
||||
(with-syntax-table lisp-data-mode-syntax-table
|
||||
(condition-case _
|
||||
(while (push (cadr (read (current-buffer))) vars))
|
||||
(end-of-file)))))
|
||||
(should (= (point) end))
|
||||
(dolist (var vars)
|
||||
(setq var (concat "\\_<" (symbol-name var) "\\_>"))
|
||||
(ert-info (var)
|
||||
(should (save-excursion (search-forward-regexp var nil t))))))))
|
||||
|
||||
(ert-deftest erc-with-all-buffers-of-server ()
|
||||
(let (proc-exnet
|
||||
proc-onet
|
||||
|
|
|
|||
Loading…
Reference in a new issue