- if (w->ww_i.nrow == w->ww_w.nrow) /* not framed */
- return -1;
- Wauxcursor(w->ww_win, 0, where);
- for (i = w->ww_o.ncol - where - 1; i > 0 && *l; l++)
- for (p = unctrl(*l); *p; p++, i--)
- Waputc(*p, mode, w->ww_win);
+ jj = MIN(w->ww_i.r, f->ww_i.r);
+ j = w->ww_i.l + where;
+ while (j < jj && *l)
+ for (p = unctrl(*l++); j < jj && *p; j++, p++) {
+ /* can't label if not already framed */
+ if (win[j] & WWM_GLS)
+ continue;
+ if (smap[j] != f->ww_index)
+ buf[j].c_w = mode | *p;
+ else {
+ ns[j].c_w = (buf[j].c_w = mode | *p)
+ ^ win[j] << WWC_MSHIFT;
+ touched |= WWU_TOUCHED;
+ }
+ fmap[j] |= WWF_LABEL;
+ }
+ wwtouched[row] = touched;