Replace them with a custom frontend making use of the termo library.
It's a bit rough at the edges, yet thoroughly functional.
The original libraries have carried us far, but they've become more
trouble than what they're worth:
- It's much easier to make this change than to keep fixing
both frontends. That has become particularly difficult as of late.
- It's also a much smaller undertaking than rewriting the client
in more radical ways, such as:
- Going for headless operation (also note that we currently lack
a terminal relay client).
- Rewriting the entire user interface to use curses.
- Abandoning GNU Readline clears up licencing.
- The old interface code was full of odd hacks and wild adapters.
While this commit adds some fresh ugly areas, in sum it's a cleanup.
- Purging the dependencies simplifies an eventual automated rewrite
in another language.
Some freshly invalidated issues:
- Readline 8.3 has reworked history, and our method of circumventing
a memory leak in history handling stopped working reliably.
Very tough to trace.
- Editline could block waiting on input.
- Editline refresh.c revision 1.61 seems to have completely broken
the prompt hiding mechanism, with no obvious means of circumventing.
Install plugins to /usr/share rather than /usr/lib since they're
arch-independent. Many precedents can be found for scripted plugins
in /usr/share and fewer for /usr/lib.
Look for plugins in all XDG data directories and repurpose
the "plugin_dir" setting to override this behaviour.
This adds some complexity to the bot but unifies the project.
It might make sense to remove the "plugin_dir" setting.