- st->dline[st->li].color = (lt==LINE_NEW) ?
- (_getcolor(st,x,y))%st->ncolors : st->dline[bl].color;
+ if (lt==LINE_NEW) {
+ int color = (_getcolor(st,x,y))%st->ncolors;
+ if (color < 0) color += st->ncolors;
+ st->dline[st->li].color = color;
+ } else {
+ st->dline[st->li].color = st->dline[bl].color;
+ }