+/* Psuedo functions. */
+#define clearok(win, bf) \
+ ((bf) ? (win->flags |= __CLEAROK) : (win->flags &= ~__CLEAROK))
+#define flushok(win, bf) \
+ ((bf) ? (win->flags |= __FLUSH) : (win->flags &= ~__FLUSH))
+#define getyx(win, y, x) \
+ (y) = win->cury, (x) = win->curx
+#define leaveok(win, bf) \
+ ((bf) ? (win->flags |= __LEAVEOK) : (win->flags &= ~__LEAVEOK))
+#define scrollok(win, bf) \
+ ((bf) ? (win->flags |= __SCROLLOK) : (win->flags &= ~__SCROLLOK))
+#define winch(win) \
+ (win->lines[win->cury]->line[win->curx].ch & 0177)
+
+/* Public function prototypes. */
+int box __P((WINDOW *, int, int));
+int cbreak __P((void));
+int delwin __P((WINDOW *));
+int echo __P((void));
+int endwin __P((void));
+char *fullname __P((char *, char *));
+char *getcap __P((char *));
+int gettmode __P((void));
+void idlok __P((WINDOW *, int));
+WINDOW *initscr __P((void));
+char *longname __P((char *, char *));
+int mvcur __P((int, int, int, int));
+int mvprintw __P((int, int, const char *, ...));
+int mvscanw __P((int, int, const char *, ...));
+int mvwin __P((WINDOW *, int, int));
+int mvwprintw __P((WINDOW *, int, int, const char *, ...));
+int mvwscanw __P((WINDOW *, int, int, const char *, ...));
+WINDOW *newwin __P((int, int, int, int));
+int nl __P((void));
+int nocbreak __P((void));
+int noecho __P((void));
+int nonl __P((void));
+int noraw __P((void));
+int overlay __P((WINDOW *, WINDOW *));
+int overwrite __P((WINDOW *, WINDOW *));
+int printw __P((const char *, ...));
+int raw __P((void));
+int resetty __P((void));
+int savetty __P((void));
+int scanw __P((const char *, ...));
+int scroll __P((WINDOW *));
+int setterm __P((char *));
+int sscans __P((WINDOW *, const char *, ...));
+WINDOW *subwin __P((WINDOW *, int, int, int, int));
+int suspendwin __P((void));
+int touchline __P((WINDOW *, int, int, int));
+int touchoverlap __P((WINDOW *, WINDOW *));
+int touchwin __P((WINDOW *));
+void tstp __P((int));
+int vwprintw __P((WINDOW *, const char *, _BSD_VA_LIST_));
+int vwscanw __P((WINDOW *, const char *, _BSD_VA_LIST_));
+int waddbytes __P((WINDOW *, char *, int));
+int waddch __P((WINDOW *, int));
+int waddstr __P((WINDOW *, char *));
+int wclear __P((WINDOW *));
+int wclrtobot __P((WINDOW *));
+int wclrtoeol __P((WINDOW *));
+int wdelch __P((WINDOW *));
+int wdeleteln __P((WINDOW *));
+int werase __P((WINDOW *));
+int wgetch __P((WINDOW *));
+int wgetstr __P((WINDOW *, char *));
+int winsch __P((WINDOW *, int));
+int winsertln __P((WINDOW *));
+int wmove __P((WINDOW *, int, int));
+int wprintw __P((WINDOW *, const char *, ...));
+int wrefresh __P((WINDOW *));
+int wscanw __P((WINDOW *, const char *, ...));
+char *wstandend __P((WINDOW *));
+char *wstandout __P((WINDOW *));
+int vwprintw __P((WINDOW *, const char *, _BSD_VA_LIST_));
+
+#ifdef _CURSES_PRIVATE
+/* Private function prototypes. */
+void __cputchar __P((int));
+void __TRACE __P((const char *, ...));
+void __id_subwins __P((WINDOW *));
+void __set_subwin __P((WINDOW *, WINDOW *));
+void __swflags __P((WINDOW *));
+int __touchline __P((WINDOW *, int, int, int, int));
+int __touchwin __P((WINDOW *));
+char *__tscroll __P((const char *, int));
+int __waddbytes __P((WINDOW *, char *, int, int));
+
+/* Private #defines. */
+#define min(a,b) (a < b ? a : b)
+#define max(a,b) (a > b ? a : b)
+
+/* Private externs. */
+extern int __echoit;
+extern int __endwin;
+extern int __pfast;
+extern int __rawmode;
+extern int __noqch;
+#endif
+
+/* Termcap functions. */
+int tgetent __P((char *, char *));
+int tgetnum __P((char *));
+int tgetflag __P((char *));
+char *tgetstr __P((char *, char **));
+char *tgoto __P((char *, int, int));
+int tputs __P((char *, int, void (*)(int)));