mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-04-22 14:01:47 -07:00
Add helper to determine local channels in ERC
* lisp/erc/erc.el (erc--valid-local-channel-p): Add internal helper to determine whether an IRC channel is local according to its network's CHANTYPES ISUPPORT parameter. * test/lisp/erc/erc-tests.el (erc--valid-local-channel-p): Add test for this helper.
This commit is contained in:
parent
4e312c07f7
commit
1c24af0fcb
2 changed files with 20 additions and 0 deletions
|
|
@ -3251,6 +3251,14 @@ For a list of user commands (/join /part, ...):
|
|||
(concat " " password)
|
||||
"")))))
|
||||
|
||||
(defun erc--valid-local-channel-p (channel)
|
||||
"Non-nil when channel is server-local on a network that allows them."
|
||||
(and-let* (((eq ?& (aref channel 0)))
|
||||
(chan-types (erc--get-isupport-entry 'CHANTYPES 'single))
|
||||
((if (>= emacs-major-version 28)
|
||||
(string-search "&" chan-types)
|
||||
(string-match-p "&" chan-types))))))
|
||||
|
||||
(defun erc-cmd-JOIN (channel &optional key)
|
||||
"Join the channel given in CHANNEL, optionally with KEY.
|
||||
If CHANNEL is specified as \"-invite\", join the channel to which you
|
||||
|
|
|
|||
|
|
@ -466,6 +466,18 @@
|
|||
(should (equal (erc-downcase "Tilde~") "tilde~" ))
|
||||
(should (equal (erc-downcase "\\O/") "|o/" )))))
|
||||
|
||||
(ert-deftest erc--valid-local-channel-p ()
|
||||
(ert-info ("Local channels not supported")
|
||||
(let ((erc--isupport-params (make-hash-table)))
|
||||
(puthash 'CHANTYPES '("#") erc--isupport-params)
|
||||
(should-not (erc--valid-local-channel-p "#chan"))
|
||||
(should-not (erc--valid-local-channel-p "&local"))))
|
||||
(ert-info ("Local channels supported")
|
||||
(let ((erc--isupport-params (make-hash-table)))
|
||||
(puthash 'CHANTYPES '("&#") erc--isupport-params)
|
||||
(should-not (erc--valid-local-channel-p "#chan"))
|
||||
(should (erc--valid-local-channel-p "&local")))))
|
||||
|
||||
(ert-deftest erc-ring-previous-command-base-case ()
|
||||
(ert-info ("Create ring when nonexistent and do nothing")
|
||||
(let (erc-input-ring
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue