--- rxvt-unicode/src/screen.C 2004/01/28 23:40:50 1.18 +++ rxvt-unicode/src/screen.C 2004/01/29 23:26:01 1.19 @@ -1651,6 +1651,30 @@ * ------------------------------------------------------------------------- */ /* + * refresh matching text. + */ +bool +rxvt_term::scr_refresh_rend (rend_t mask, rend_t value) +{ + bool found = false; + + for (int i = 0; i < TermWin.nrow; i++) + { + int col = 0; + rend_t *drp = drawn_rend [i]; + + for (; col < TermWin.ncol; col++, drp++) + if ((*drp & mask) == value) + { + found = true; + *drp = ~value; + } + } + + return found; +} + +/* * Refresh an area */ enum { @@ -2135,7 +2159,18 @@ rend = GET_ATTR (rend); rvid = !!(rend & RS_RVid); -#ifdef OPTION_HC +#ifdef TEXT_BLINK + if (rend & RS_Blink) + { + if (!text_blink_ev.active) + { + text_blink_ev.start (NOW + TEXT_BLINK_INTERVAL); + hidden_text = 0; + } + else if (hidden_text) + fore = back; + } +#elif OPTION_HC if (!rvid && (rend & RS_Blink)) { if (Xdepth > 2 && ISSET_PIXCOLOR (this, Color_HC)) @@ -2160,8 +2195,11 @@ #ifndef NO_BOLD_UNDERLINE_REVERSE else if (rend & RS_Bold) { - if (Xdepth > 2 && ISSET_PIXCOLOR (this, Color_BD)) - fore = Color_BD; + if (Xdepth > 2) + if (ISSET_PIXCOLOR (this, Color_BD)) + fore = Color_BD; + else + fore = Color_White; } else if (rend & RS_Uline) {