@elextr here you go: f600937dd8f592ff00150867537166b2d86aa4dd.
It's more verbose, but possibly easier to grasp, and indeed doe snot suffer from hash clash. And although it's using a lot more memory it should still be reasonable (`sizeof(void*) + strlen(font) + 2 + 3*sizeof(int)`, plus any padding in struct and font string allocation instead of `sizeof(int)`, which with the font "monospace" is gonna be 31 bytes in my x86_64 Linux, versus 4 for the hash alone).
github-comments@lists.geany.org