]> git.eshelyaron.com Git - emacs.git/commitdiff
; Slightly improve test case for erc-parse-modes
authorF. Jason Park <jp@neverwas.me>
Sat, 7 Dec 2024 03:09:04 +0000 (19:09 -0800)
committerEshel Yaron <me@eshelyaron.com>
Thu, 12 Dec 2024 15:46:53 +0000 (16:46 +0100)
* lisp/erc/erc.el (erc--merge-local-modes): Look for a symbol's
`erc-module' property before examining its name.
* test/lisp/erc/erc-tests.el (erc-parse-modes): Expand case to cover
alternating plus and minus mode changes.

(cherry picked from commit dc7c38ed9ec85e2e7cbe3c9fcb3b6d5dbb5aa206)

lisp/erc/erc.el
test/lisp/erc/erc-tests.el

index 9d70264b36ae21dd23d8d254f7e69b849cac7940..10b5fc84da903d269c3930abbbdb5bc75e29d49a 100644 (file)
@@ -2519,9 +2519,9 @@ nil."
   (if old-vars
       (let ((out (list (reverse new-modes))))
         (pcase-dolist (`(,k . ,v) old-vars)
-          (when (and (string-prefix-p "erc-" (symbol-name k))
-                     (string-suffix-p "-mode" (symbol-name k))
-                     (get k 'erc-module))
+          (when (and (get k 'erc-module)
+                     (string-prefix-p "erc-" (symbol-name k))
+                     (string-suffix-p "-mode" (symbol-name k)))
             (if v
                 (cl-pushnew k (car out))
               (setf (car out) (delq k (car out)))
index 35ad5c8d621e8f00ebfae8372ed7777066833fc6..1968a75136fbb2b93d2dc1fedde34e5e2186b8fc 100644 (file)
     (should (equal (erc-parse-modes "-o bob") '(nil nil (("o" off "bob")))))
     (should (equal (erc-parse-modes "+uo bob") '(("u") nil (("o" on "bob")))))
     (should (equal (erc-parse-modes "+o-u bob") '(nil ("u") (("o" on "bob")))))
+
     (should (equal (erc-parse-modes "+uo-tv bob alice")
                    '(("u") ("t") (("o" on "bob") ("v" off "alice")))))
+    (should (equal (erc-parse-modes "+u-t+o-v bob alice")
+                   '(("u") ("t") (("o" on "bob") ("v" off "alice")))))
 
     (ert-info ("Modes of type B are always grouped as unary")
       (should (equal (erc-parse-modes "+k h2") '(nil nil (("k" on "h2")))))