the xx layer added, handle "ic" differently, compression added to zapple
[unix-history] / usr / src / usr.bin / window / tt.h
index b6510e4..0cae050 100644 (file)
@@ -1,5 +1,20 @@
 /*
 /*
- * @(#)tt.h    3.12 %G%
+ * Copyright (c) 1983 Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the University of California, Berkeley.  The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ *     @(#)tt.h        3.21 (Berkeley) %G%
  */
 
 /*
  */
 
 /*
@@ -14,12 +29,18 @@ struct tt {
        int (*tt_move)();
        int (*tt_insline)();
        int (*tt_delline)();
        int (*tt_move)();
        int (*tt_insline)();
        int (*tt_delline)();
+       int (*tt_inschar)();
        int (*tt_delchar)();
        int (*tt_write)();              /* write a whole block */
        int (*tt_putc)();               /* write one character */
        int (*tt_clreol)();
        int (*tt_clreos)();
        int (*tt_clear)();
        int (*tt_delchar)();
        int (*tt_write)();              /* write a whole block */
        int (*tt_putc)();               /* write one character */
        int (*tt_clreol)();
        int (*tt_clreos)();
        int (*tt_clear)();
+       int (*tt_scroll_down)();
+       int (*tt_scroll_up)();
+       int (*tt_setscroll)();          /* set scrolling region */
+       int (*tt_setinsert)();          /* set insert mode */
+       int (*tt_setmodes)();           /* set display modes */
 
                /* internal variables */
        char tt_modes;                  /* the current display modes */
 
                /* internal variables */
        char tt_modes;                  /* the current display modes */
@@ -28,11 +49,12 @@ struct tt {
        char tt_ninsert;                /* insert mode on next write */
        int tt_row;                     /* cursor row */
        int tt_col;                     /* cursor column */
        char tt_ninsert;                /* insert mode on next write */
        int tt_row;                     /* cursor row */
        int tt_col;                     /* cursor column */
+       int tt_scroll_top;              /* top of scrolling region */
+       int tt_scroll_bot;              /* bottom of scrolling region */
 
                /* terminal info */
        int tt_nrow;                    /* number of display rows */
        int tt_ncol;                    /* number of display columns */
 
                /* terminal info */
        int tt_nrow;                    /* number of display rows */
        int tt_ncol;                    /* number of display columns */
-       char tt_hasinsert;              /* has insert character */
        char tt_availmodes;             /* the display modes supported */
        char tt_wrap;                   /* has auto wrap around */
        char tt_retain;                 /* can retain below (db flag) */
        char tt_availmodes;             /* the display modes supported */
        char tt_wrap;                   /* has auto wrap around */
        char tt_retain;                 /* can retain below (db flag) */
@@ -50,7 +72,7 @@ struct tt_tab {
        int tt_len;
        int (*tt_func)();
 };
        int tt_len;
        int (*tt_func)();
 };
-struct tt_tab tt_tab[];
+extern struct tt_tab tt_tab[];
 
 /*
  * Clean interface to termcap routines.
 
 /*
  * Clean interface to termcap routines.
@@ -59,11 +81,17 @@ struct tt_tab tt_tab[];
 char tt_strings[1024];         /* string buffer */
 char *tt_strp;                 /* pointer for it */
 
 char tt_strings[1024];         /* string buffer */
 char *tt_strp;                 /* pointer for it */
 
-#define tttgetstr(s)   tgetstr((s), &tt_strp)
-char *ttxgetstr();             /* tgetstr() and expand delays */
+struct tt_str {
+       char *ts_str;
+       int ts_n;
+};
+
+struct tt_str *tttgetstr();
+struct tt_str *ttxgetstr();    /* tgetstr() and expand delays */
 
 int tttputc();
 
 int tttputc();
-#define tttputs(s, n)  tputs((s), (n), tttputc)
+#define tttputs(s, n)  tputs((s)->ts_str, (n), tttputc)
+#define ttxputs(s)     ttwrite((s)->ts_str, (s)->ts_n)
 
 /*
  * Buffered output without stdio.
 
 /*
  * Buffered output without stdio.