- if (!(framed = w->ww_inrow < w->ww_nrow)) {
- Wgetframe(&ulc, &top, &urc, &left, &right, &llc, &bottom, &lrc);
- w->ww_inrow--;
- w->ww_irow++;
- }
- Wauxcursor(w->ww_win, 0, 1);
- for (i = w->ww_ncol - 2; i > 0 && *l; i--, l++)
- Waputc(*l, mode, w->ww_win);
- if (!framed)
- for (; i > 0; i--)
- Waputc(top, 0, 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;