Hello,
while working on Zsh Navigation Tools I encountered random changing, blinking of colors (in n-options). This not always reproduced, but luckily on one FreeBSD box it did always reproduce.
After going into the code I established that following code in curses.c:
if (zc_color_phase==1 ||
!(cpn = (Colorpairnode) gethashnode(zcurses_colorpairs, colorpair))) {
should be:
if (zc_color_phase==1 ||
!(cpn = (Colorpairnode) gethashnode2(zcurses_colorpairs, colorpair))) {
The author defined the hash table with gethashnode2() from the beginning:
zcurses_colorpairs->getnode = gethashnode2;
zcurses_colorpairs->getnode2 = gethashnode2;
However there he called the non-2 version.