+#define wwcurtowin(w) wwsetcursor((w)->ww_cur.r, (w)->ww_cur.c)
+#define wwunbox(w) wwunframe(w)
+#define wwclreol(w,r,c) wwclreol1((w), (r), (c), 0)
+#define wwredrawwin(w) wwredrawwin1((w), (w)->ww_i.t, (w)->ww_i.b, 0)
+#define wwupdate() wwupdate1(0, wwnrow);
+
+ /* things for handling input */
+int wwrint(); /* interrupt handler */
+struct ww *wwcurwin; /* window to copy input into */
+char wwsetjmp; /* want a longjmp() from wwrint() */
+jmp_buf wwjmpbuf; /* jmpbuf for above */
+char *wwib; /* input (keyboard) buffer */
+char *wwibe; /* wwib + sizeof buffer */
+char *wwibp; /* current read position in buffer */
+char *wwibq; /* current write position in buffer */
+#define wwgetc() (wwibp < wwibq ? *wwibp++ & 0x7f : -1)
+#define wwpeekc() (wwibp < wwibq ? *wwibp & 0x7f : -1)
+#define wwungetc(c) (wwibp > wwib ? *--wwibp = (c) : -1)
+#define wwinterrupt() (wwibp < wwibq)
+
+ /* the window virtual terminal */
+#define WWT_TERM "TERM=window"
+#define WWT_TERMCAP "WW|window|window program:\
+ :cr=^M:nl=^J:bl=^G:\
+ :al=\\EL:am:le=^H:bs:cd=\\EJ:ce=\\EK:cl=\\EE:cm=\\EY%+ %+ :\
+ :da:db:dc=\\EN:dl=\\EM:do=\\EB:ei=\\EO:ho=\\EH:im=\\E@:mi:\
+ :nd=\\EC:ta=^I:pt:up=\\EA:me=\\Er^?:"
+#define WWT_REV "se=\\ErA:so=\\EsA:mr=\\EsA:"
+#define WWT_BLK "BE=\\ErB:BS=\\EsB:mb=\\EsB:"
+#define WWT_UL "ue=\\ErD:us=\\EsD:"
+#define WWT_GRP "ae=\\ErH:as=\\EsH:"
+#define WWT_DIM "HE=\\ErP:HS=\\EsP:mh=\\EsP:"
+#define WWT_USR "XE=\\Er`:XS=\\Es`:"