BSD 4_4 release
[unix-history] / usr / src / lib / libplot / dumb / open.c
/*-
* Copyright (c) 1980, 1993
* The Regents of the University of California. All rights reserved.
*
* This module is believed to contain source code proprietary to AT&T.
* Use and redistribution is subject to the Berkeley Software License
* Agreement and your Software Agreement with AT&T (Western Electric).
*/
#ifndef lint
static char sccsid[] = "@(#)open.c 8.1 (Berkeley) 6/4/93";
#endif /* not lint */
/*
* This accepts plot file formats and produces the appropriate plots
* for dumb terminals. It can also be used for printing terminals and
* lineprinter listings, although there is no way to specify number of
* lines and columns different from your terminal. This would be easy
* to change, and is left as an exercise for the reader.
*/
#include <signal.h>
#include "dumb.h"
int minX, rangeX; /* min and range of x */
int minY, rangeY; /* min and range of y */
int currentx,currenty;
int COLS,LINES;
/* A very large screen! (probably should use malloc) */
char screenmat[MAXCOLS][MAXLINES];
openpl()
{
void closepl();
int i, j;
char *term, *getenv();
char bp[1024];
term = getenv("TERM");
tgetent(bp, term);
COLS = tgetnum("co");
if (COLS > MAXCOLS)
COLS = MAXCOLS;
if (COLS < 0)
COLS = 48; /* lower bound on # of cols? */
COLS--; /* prevent auto wrap */
LINES = tgetnum("li");
if (LINES > MAXLINES)
LINES = MAXLINES;
if (LINES < 0)
LINES = 20; /* lower bound on # of lines? */
for(i=0; i<COLS; i++)
for(j=0; j<LINES; j++)
screenmat[i][j] = ' ';
signal(SIGINT, closepl);
currentx = currenty = 0;
}