1 /* 2 * Copyright 2001 Sun Microsystems, Inc. All rights reserved. 3 * Use is subject to license terms. 4 */ 5 6 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 7 /* All Rights Reserved */ 8 9 /* 10 * Copyright (c) 1980 Regents of the University of California. 11 * All rights reserved. The Berkeley software License Agreement 12 * specifies the terms and conditions for redistribution. 13 */ 14 15 /*LINTLIBRARY*/ 16 17 #ifndef lint 18 static char 19 sccsid[] = "@(#)initscr.c 1.6 88/02/08 SMI"; /* from UCB 5.1 85/06/07 */ 20 #endif /* not lint */ 21 22 #include "curses.ext" 23 #include <term.h> 24 #include <stdlib.h> 25 #include <signal.h> 26 27 /* 28 * This routine initializes the current and standard screen. 29 */ 30 31 WINDOW * 32 initscr(void) 33 { 34 char *sp; 35 36 #ifdef DEBUG 37 fprintf(outf, "INITSCR()\n"); 38 #endif 39 if (My_term) 40 (void) setterm(Def_term); 41 else { 42 (void) gettmode(); 43 if ((sp = getenv("TERM")) == NULL) 44 sp = Def_term; 45 (void) setterm(sp); 46 #ifdef DEBUG 47 fprintf(outf, "INITSCR: term = %s\n", sp); 48 #endif 49 } 50 (void) _puts(TI); 51 (void) _puts(VS); 52 #ifdef SIGTSTP 53 (void) signal(SIGTSTP, (void(*)(int))tstp); 54 #endif 55 if (curscr != NULL) { 56 #ifdef DEBUG 57 fprintf(outf, "INITSCR: curscr = 0%o\n", curscr); 58 #endif 59 (void) delwin(curscr); 60 } 61 #ifdef DEBUG 62 fprintf(outf, "LINES = %d, COLS = %d\n", LINES, COLS); 63 #endif 64 if ((curscr = newwin(LINES, COLS, 0, 0)) == ERR) 65 return (ERR); 66 clearok(curscr, TRUE); 67 curscr->_flags &= ~_FULLLINE; 68 if (stdscr != NULL) { 69 #ifdef DEBUG 70 fprintf(outf, "INITSCR: stdscr = 0%o\n", stdscr); 71 #endif 72 (void) delwin(stdscr); 73 } 74 stdscr = newwin(LINES, COLS, 0, 0); 75 return (stdscr); 76 } 77