- 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);
+ j = w->ww_w.l + where;
+ j = MAX(j, f->ww_w.l);
+ win = &f->ww_win[i][j - f->ww_w.l];
+ buf = &f->ww_buf[w->ww_scroll + i][j - f->ww_w.l];
+ i += f->ww_w.t;
+ ns = &wwns[i][j];
+ fmap = &wwfmap[i][j];
+ touched = &wwtouched[i];
+ j = MIN(w->ww_w.r, f->ww_w.r) - j;
+
+ for (; j > 0 && *l;)
+ for (p = unctrl(*l++); j > 0 && *p; j--) {
+ /* can't label if not already framed */
+ if (*win & WWM_GLS) {
+ p++;
+ buf++;
+ ns++;
+ win++;
+ fmap++;
+ } else if (*win & WWM_COV) {
+ buf++->c_w = mode << WWC_MSHIFT | *p++;
+ *fmap++ |= WWF_LABEL;
+ ns++;
+ win++;
+ } else {
+ *touched = 1;
+ ns++->c_w = (buf++->c_w
+ = mode << WWC_MSHIFT | *p++)
+ ^ *win++ << WWC_MSHIFT;
+ *fmap++ |= WWF_LABEL;
+ }
+ }
+
+ return 0;