#include "ex.h" /* * Ex - a text editor * Bill Joy UCB June 1977 */ extern getsub(); extern gettty(); append(f, a) int (*f)(); { register int *a1, *a2, *rdot; int nline; struct { int integer; }; nline = 0; dot = a; if (!inglobal && !inopen && f != getsub) { undap1 = undap2 = dot + 1; undkind = UNDCHANGE; } while ((*f)() == 0) { if (unddol >= endcore) { if (sbrk(1024) == -1) { if (!inglobal && f == getsub) { undap1 = addr1; undap2 = addr2 + 1; } error("Out of memory@- too many lines in file"); } endcore.integer =+ 1024; } nline++; a1 = unddol + 1; a2 = a1 + 1; dot++; undap2++; dol++; unddol++; for (rdot = dot; a1 > rdot;) *--a2 = *--a1; *rdot = 0; putmark(rdot); if (f == &gettty) { dirtcnt++; TSYNC(); } } return (nline); } appendnone() { if (!inglobal) { undkind = UNDCHANGE; undap1 = undap2 = addr1; } }