BSD 4_3_Reno release
[unix-history] / usr / src / usr.bin / window / ttinit.c
index a5b45e0..d10fedc 100644 (file)
@@ -5,15 +5,30 @@
  * This code is derived from software contributed to Berkeley by
  * Edward Wang at The University of California, Berkeley.
  *
  * This code is derived from software contributed to Berkeley by
  * Edward Wang at The University of California, Berkeley.
  *
- * %sccs.include.redist.c%
+ * Redistribution and use in source and binary forms are permitted provided
+ * that: (1) source distributions retain this entire copyright notice and
+ * comment, and (2) distributions including binaries display the following
+ * acknowledgement:  ``This product includes software developed by the
+ * University of California, Berkeley and its contributors'' in the
+ * documentation or other materials provided with the distribution and in
+ * all advertising materials mentioning features or use of this software.
+ * Neither the name of the University nor the names of its contributors may
+ * 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
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)ttinit.c   3.27 (Berkeley) %G%";
+static char sccsid[] = "@(#)ttinit.c   3.26 (Berkeley) 6/6/90";
 #endif /* not lint */
 
 #include "ww.h"
 #include "tt.h"
 #endif /* not lint */
 
 #include "ww.h"
 #include "tt.h"
+#ifdef POSIX_TTY
+#include <sys/ioctl.h>
+#endif
 
 int tt_h19();
 int tt_h29();
 
 int tt_h19();
 int tt_h29();
@@ -44,6 +59,7 @@ ttinit()
        register struct tt_tab *tp;
        register char *p, *q;
        register char *t;
        register struct tt_tab *tp;
        register char *p, *q;
        register char *t;
+       struct winsize winsize;
        int ttflush();
 
        tt_strp = tt_strings;
        int ttflush();
 
        tt_strp = tt_strings;
@@ -86,8 +102,12 @@ ttinit()
                wwerrno = WWE_CANTDO;
                return -1;
        }
                wwerrno = WWE_CANTDO;
                return -1;
        }
-       if (wwgetttysize(0, &tt.tt_nrow, &tt.tt_ncol) < 0)
-               return -1;
+       if (ioctl(0, TIOCGWINSZ, (char *)&winsize) >= 0) {
+               if (winsize.ws_row != 0)
+                       tt.tt_nrow = winsize.ws_row;
+               if (winsize.ws_col != 0)
+                       tt.tt_ncol = winsize.ws_col;
+       }
        tt.tt_scroll_top = 0;
        tt.tt_scroll_bot = tt.tt_nrow - 1;
        tt.tt_flush = ttflush;
        tt.tt_scroll_top = 0;
        tt.tt_scroll_bot = tt.tt_nrow - 1;
        tt.tt_flush = ttflush;