]> 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)
committerF. Jason Park <jp@neverwas.me>
Mon, 18 Dec 2023 04:17:54 +0000 (20:17 -0800)
commit69ca2cc1138b0fe722d601c2113c83f2a6f791ed
treed26ecbab04c252b63e568788705b036a02781745
parent1e2b156f040bae9a35c1cdf72f0ab0f6036a593f
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)
lisp/erc/erc-common.el
lisp/erc/erc-dcc.el
lisp/erc/erc.el
test/lisp/erc/erc-tests.el