- cpp = &wwns[startrow + w->ww_w.t];
- cqq = cpp + 1;
- tmp = *cpp;
- for (i = endrow - startrow; --i >= 0;)
- *cpp++ = *cqq++;
- *cpp = tmp;
- wwredrawwin1(w, srow, startrow - 1, w->ww_scroll + dir);
- wwredrawwin1(w, endrow + 1, erow - leaveit,
- w->ww_scroll + dir);
+ {
+ register union ww_char *tmp;
+ register union ww_char **cpp, **cqq;
+
+ cpp = &wwns[row1x];
+ cqq = cpp + 1;
+ tmp = *cpp;
+ for (i = row2x - row1x; --i > 0;)
+ *cpp++ = *cqq++;
+ *cpp = tmp;
+ }
+ if (deleted) {
+ register char *p, *q;
+
+ p = &wwtouched[row1x];
+ q = p + 1;
+ for (i = row2x - row1x; --i > 0;)
+ *p++ = *q++;
+ *p |= WWU_TOUCHED;
+ } else {
+ register char *p;
+
+ p = &wwtouched[row1x];
+ for (i = row2x - row1x; --i >= 0;)
+ *p++ |= WWU_MAJOR|WWU_TOUCHED;
+ }
+ wwredrawwin1(w, row1, row1x, dir);
+ wwredrawwin1(w, row2x - 1, row2 - leaveit, dir);