xref: /original-bsd/lib/libcurses/initscr.c (revision 6c57d260)
1 # include	"curses.ext"
2 # include	<signal.h>
3 
4 extern char	*getenv();
5 
6 /*
7  *	This routine initializes the current and standard screen.
8  *
9  * 03/06/81 (Berkeley) @(#)initscr.c	1.2
10  */
11 WINDOW *
12 initscr() {
13 
14 	reg char	*sp;
15 	int		tstp();
16 
17 # ifdef DEBUG
18 	fprintf(outf, "INITSCR()\n");
19 # endif
20 	if (!My_term && isatty(2)) {
21 		_tty_ch = 2;
22 		gettmode();
23 		if ((sp = getenv("TERM")) == NULL)
24 			sp = Def_term;
25 		setterm(sp);
26 # ifdef DEBUG
27 		fprintf(outf, "INITSCR: term = %s\n", sp);
28 # endif
29 	}
30 	else
31 		setterm(Def_term);
32 	_puts(TI);
33 	_puts(VS);
34 # ifdef SIGTSTP
35 	signal(SIGTSTP, tstp);
36 # endif
37 	if (curscr != NULL) {
38 # ifdef DEBUG
39 		fprintf(outf, "INITSCR: curscr = 0%o\n", curscr);
40 # endif
41 		delwin(curscr);
42 	}
43 # ifdef DEBUG
44 	fprintf(outf, "LINES = %d, COLS = %d\n", LINES, COLS);
45 # endif
46 	if ((curscr = newwin(LINES, COLS, 0, 0)) == ERR)
47 		return ERR;
48 	curscr->_clear = TRUE;
49 	if (stdscr != NULL) {
50 # ifdef DEBUG
51 		fprintf(outf, "INITSCR: stdscr = 0%o\n", stdscr);
52 # endif
53 		delwin(stdscr);
54 	}
55 	stdscr = newwin(LINES, COLS, 0, 0);
56 	return stdscr;
57 }
58