Subject: bug#44100: Patch

From: Amin Bandali <[email-masked]>
Date: Mon, 02 Nov 2020 21:38:21 -0500

Lars Ingebrigtsen writes:

[...]
>
> Normalising to having a list of faces here sounds like a good idea, if
> I'm skimming the code correctly, but it would probably help
> comprehension a bit here if you renamed the parameter from `erc-face' to
> something like `face-list'.

Thanks.  However, after staring at C-h f erc-track-find-face RET for a
good while and experimenting in Edebug a fair bit, I have noticed that
my change to C-h f erc-track-modified-channels RET for normalizing to
always have a list breaks erc-track-find-face's algorithm in a
non-trivial way, due its dependence on the structure of the two
C-h v erc-track-faces-priority-list RET and
C-h v erc-track-faces-normal-list RET lists.

Since for the time being I don't have the time or energy to rethink
those two functions' algorithms to work with a normalized list of lists
for those two variables, I have decided to keep things as they are, and
do the less evasive change in erc-ibuffer as suggested by Olivier to fix
erc-ibuffer.  I will commit that change over the few days, and will also
try to clarify the docstring for C-h v erc-modified-channels-alist RET
some more to more accurately describe its structure.

I welcome anyone who would like to volunteer to send a patch for
updating those functions to work with a normalized list of lists for
those two variables, granted they can provide a convincing argument that
their change is correct and does not break the current behaviour, does
not dramatically further increase the complexity of the algorithms, and
is ideally backward compatible with the current non-normalized structure
of those two variables as well.