static void #if EMOJI_HIGHLIGHT_PATCH drawhighlights(struct item *item, char *output, int x, int y, int maxw) #else drawhighlights(struct item *item, int x, int y, int maxw) #endif // EMOJI_HIGHLIGHT_PATCH { int i, indent; char *highlight; char c; #if EMOJI_HIGHLIGHT_PATCH char *itemtext = output; #elif TSV_PATCH && !SEPARATOR_PATCH char *itemtext = item->stext; #else char *itemtext = item->text; #endif // TSV_PATCH if (!(strlen(itemtext) && strlen(text))) return; /* Do not highlight items scheduled for output */ #if MULTI_SELECTION_PATCH if (issel(item->id)) return; #else if (item->out) return; #endif // MULTI_SELECTION_PATCH drw_setscheme(drw, scheme[item == sel ? SchemeSelHighlight : SchemeNormHighlight]); for (i = 0, highlight = itemtext; *highlight && text[i];) { #if FUZZYMATCH_PATCH if (!fstrncmp(&(*highlight), &text[i], 1)) #else if (*highlight == text[i]) #endif // FUZZYMATCH_PATCH { /* get indentation */ c = *highlight; *highlight = '\0'; indent = TEXTW(itemtext) - lrpad; *highlight = c; /* highlight character */ c = highlight[1]; highlight[1] = '\0'; drw_text( drw, x + indent + (lrpad / 2), y, MIN(maxw - indent - lrpad, TEXTW(highlight) - lrpad), bh, 0, highlight, 0 #if PANGO_PATCH , True #endif // PANGO_PATCH ); highlight[1] = c; i++; } highlight++; } }