1 /* 2 * Copyright (c) 1980 Regents of the University of California. 3 * All rights reserved. The Berkeley software License Agreement 4 * specifies the terms and conditions for redistribution. 5 */ 6 7 #ifndef lint 8 static char sccsid[] = "@(#)open.c 5.2 (Berkeley) 02/24/91"; 9 #endif not lint 10 11 /* 12 * This accepts plot file formats and produces the appropriate plots 13 * for dumb terminals. It can also be used for printing terminals and 14 * lineprinter listings, although there is no way to specify number of 15 * lines and columns different from your terminal. This would be easy 16 * to change, and is left as an exercise for the reader. 17 */ 18 19 #include <signal.h> 20 #include "dumb.h" 21 22 int minX, rangeX; /* min and range of x */ 23 int minY, rangeY; /* min and range of y */ 24 int currentx,currenty; 25 int COLS,LINES; 26 27 /* A very large screen! (probably should use malloc) */ 28 char screenmat[MAXCOLS][MAXLINES]; 29 30 openpl() 31 { 32 void closepl(); 33 int i, j; 34 char *term, *getenv(); 35 char bp[1024]; 36 37 term = getenv("TERM"); 38 tgetent(bp, term); 39 40 COLS = tgetnum("co"); 41 if (COLS > MAXCOLS) 42 COLS = MAXCOLS; 43 if (COLS < 0) 44 COLS = 48; /* lower bound on # of cols? */ 45 COLS--; /* prevent auto wrap */ 46 47 LINES = tgetnum("li"); 48 if (LINES > MAXLINES) 49 LINES = MAXLINES; 50 if (LINES < 0) 51 LINES = 20; /* lower bound on # of lines? */ 52 53 for(i=0; i<COLS; i++) 54 for(j=0; j<LINES; j++) 55 screenmat[i][j] = ' '; 56 57 signal(SIGINT, closepl); 58 currentx = currenty = 0; 59 } 60