]> git.eshelyaron.com Git - emacs.git/commit
Add utility for iterating over arrays in ERC
authorF. Jason Park <jp@neverwas.me>
Mon, 4 Dec 2023 03:19:37 +0000 (19:19 -0800)
committerEshel Yaron <me@eshelyaron.com>
Thu, 21 Dec 2023 20:53:52 +0000 (21:53 +0100)
commit83da7f84ac49e7fc92ee63b4afc142fe754a3b3f
tree2af7c227ccade9098286731e884cfd7a56890a2a
parent67ced033bb514c9a27fc251fe747bef0107b02b6
Add utility for iterating over arrays in ERC

* lisp/erc/erc-common.el (erc--doarray): Add macro for mapping over
arrays.  ERC has the uncommon requirement of having to repeatedly
traverse strings that contain flags for advertised server features.
It doesn't make sense to translate these meanings into enums or
dynamically generate variables for each flag.  Hash tables and lists
require additional setup and aren't as compact to inspect.
* lisp/erc/erc-dcc.el (erc-dcc-handle-ctcp-send): Use `string-search'
instead of `seq-contains-p' even though performance doesn't matter
here.
* lisp/erc/erc.el (erc--channel-mode-types): Use `erc--doarray'
instead of `dolist'.
(erc--process-channel-modes): Use `erc--doarray' instead of `dolist',
and don't create a string from current char until needed.
(erc--parse-user-modes): Use `erc--doarray' instead of `dolist'.
* test/lisp/erc/erc-tests.el (erc--doarray): New test.  (Bug#67677)

(cherry picked from commit 69ca2cc1138b0fe722d601c2113c83f2a6f791ed)
lisp/erc/erc-common.el
lisp/erc/erc-dcc.el
lisp/erc/erc.el
test/lisp/erc/erc-tests.el