To add itself to mode-line-process spinner.el creates a new mode line format that embeds the previous mode line as a sublist instead of appending itself to the existing mode-line-format.
The problem with this approach is that if other modes do like spinner.el they will step on each other's toes: when the mode line format (A1 ... An), spinner.el changes it to ((A1 ... An) spinner--mode-line-construct). This breaks the type of membership tests that spinner itself uses: (memq 'A1 mode-line-process) returns nil after the changes that spinner applies.
Hi there,
To add itself to mode-line-process spinner.el creates a new mode line format that embeds the previous mode line as a sublist instead of appending itself to the existing mode-line-format.
The problem with this approach is that if other modes do like spinner.el they will step on each other's toes: when the mode line format
(A1 ... An)
,spinner.el
changes it to((A1 ... An) spinner--mode-line-construct)
. This breaks the type of membership tests that spinner itself uses:(memq 'A1 mode-line-process)
returnsnil
after the changes that spinner applies.