Nothing in GTK+ appears to be suited for what are virtually infinite
lists. Our workaround with GtkLabel and GtkScrolledWindow has been
heavily suboptimal and needs to be replaced.
Use Pango directly to handle our relatively simple needs.
Upgrades:
- the widget can be scrolled,
- keywords are repeated for each definition line,
- definition lines are now wrapped, and support 'g' and 'x' fields.
Downgrades:
- text can no longer be selected, so far.
Writing DocBook XML by hand is an awful experience and the tools aren't
much better. Asciidoctor does it well. There's no need to worry about
semantics, man(1) just needs to be able to show something at all.
This project's manpage is sadly almost useless right now.
As it happens, there is no real need to constantly poll for changes,
since XFixes can inform us of updates as they happen.
With GTK+ gone we've got dependencies and error handling under control.
XCB is a truly awful thing to learn, though.
Our method will never work on Wayland or Windows, so we don't miss out
on anything by abandoning the huge toolkit.
I've come to the conclusion that copyright mostly just stands in the way
of software development. In my jurisdiction I cannot give up my own
copyright and 0BSD seems to be the closest thing to public domain.
The updated mail address, also used in my author/committer lines,
is shorter and looks nicer. People rarely interact anyway.
Now the tools don't get built on `make all' but instead have their
own target called `tools'. It might be reasonable to move them into
their own directory sometime, instead of cluttering `src'.
Provides pseudo-random access to dictionary files compressed using dictzip.
It doesn't implement a cache, it just loads missing chunks until it has the
whole file. I'm not sure if discarding not recently used chunks is really
a useful feature. If there _was_ a way to get noticed when system memory
is low, I think the best way to handle that event would be to simply release
it all.
All in all, this is pretty useless. But it was interesting to write.
This has yet to be integrated into the application proper.