summaryrefslogtreecommitdiff
path: root/usr/src/ucbcmd/plot/libplot/dumb/open.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/ucbcmd/plot/libplot/dumb/open.c')
-rw-r--r--usr/src/ucbcmd/plot/libplot/dumb/open.c67
1 files changed, 67 insertions, 0 deletions
diff --git a/usr/src/ucbcmd/plot/libplot/dumb/open.c b/usr/src/ucbcmd/plot/libplot/dumb/open.c
new file mode 100644
index 0000000000..26dad93202
--- /dev/null
+++ b/usr/src/ucbcmd/plot/libplot/dumb/open.c
@@ -0,0 +1,67 @@
+/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
+/* All Rights Reserved */
+
+
+#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.1 */
+
+/*
+ * Copyright (c) 1980 Regents of the University of California.
+ * All rights reserved. The Berkeley software License Agreement
+ * specifies the terms and conditions for redistribution.
+ */
+
+/*
+ * Copyright (c) 1983, 1984 1985, 1986, 1987, 1988, Sun Microsystems, Inc.
+ * All Rights Reserved.
+ */
+
+
+/*
+ * 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;
+}