summaryrefslogtreecommitdiff
path: root/lib/libncurses/lib_newterm.c
diff options
context:
space:
mode:
authorPeter Wemm <peter@FreeBSD.org>1999-08-30 07:58:08 +0000
committerPeter Wemm <peter@FreeBSD.org>1999-08-30 07:58:08 +0000
commit99af2e21c73f07587da16d34eb6795f4a46cc5be (patch)
tree5df591f7e443330146099aa76e2f474a81669ebf /lib/libncurses/lib_newterm.c
parent02e1576966f0a3b9300a7269c3e6894e62b1f3ba (diff)
Notes
Diffstat (limited to 'lib/libncurses/lib_newterm.c')
-rw-r--r--lib/libncurses/lib_newterm.c177
1 files changed, 0 insertions, 177 deletions
diff --git a/lib/libncurses/lib_newterm.c b/lib/libncurses/lib_newterm.c
deleted file mode 100644
index 4b49c8debf13..000000000000
--- a/lib/libncurses/lib_newterm.c
+++ /dev/null
@@ -1,177 +0,0 @@
-
-/* This work is copyrighted. See COPYRIGHT.OLD & COPYRIGHT.NEW for *
-* details. If they are missing then this copy is in violation of *
-* the copyright conditions. */
-
-/*
-** lib_newterm.c
-**
-** The newterm() function.
-**
-*/
-
-#include <stdlib.h>
-#include "curses.priv.h"
-#include "terminfo.h"
-#ifdef SVR4_ACTION
-#define _POSIX_SOURCE
-#endif
-#include <signal.h>
-
-#ifdef MYTINFO
-int LINES, COLS;
-#endif
-
-static void cleanup(int sig)
-{
-
- if (sig == SIGSEGV)
- fprintf(stderr, "Got a segmentation violation signal, cleaning up and exiting\n");
- endwin();
- exit(1);
-}
-
-static void
-size_change(int sig)
-{
- struct ttysize ws;
-
- if (ioctl(0, TIOCGSIZE, &ws) != -1) {
- LINES = ws.ts_lines;
- COLS = ws.ts_cols;
- }
-}
-
-WINDOW *stdscr, *curscr, *newscr;
-SCREEN *SP;
-
-struct ripoff_t
-{
- int line;
- int (*hook)();
-}
-rippedoff[5], *rsp = rippedoff;
-
-SCREEN * newterm(char *term, FILE *ofp, FILE *ifp)
-{
-sigaction_t act;
-int errret;
-int stolen, topstolen;
-extern char _ncurses_copyright[];
-char *use_it = _ncurses_copyright;
-
- use_it = use_it; /* shut up compiler */
-#ifdef TRACE
- _init_trace();
- T(("newterm(\"%s\",%x,%x) called", term, ofp, ifp));
-#endif
-
-#ifdef MYTINFO
- if (setupterm(term, fileno(ofp), &errret) != OK)
- return NULL;
- COLS = columns;
- LINES = lines;
-#else
- if (setupterm(term, fileno(ofp), &errret) != 1)
- return NULL;
-#endif
-
- if ((SP = (SCREEN *) malloc(sizeof *SP)) == NULL)
- return NULL;
-
- if (ofp == stdout && ifp == stdin) {
- SP->_ofp = stdout;
- SP->_ifp = stdin;
- } else {
- SP->_ofp = ofp;
- SP->_ifp = ofp;
- }
- SP->_term = cur_term;
- SP->_cursrow = -1;
- SP->_curscol = -1;
- SP->_keytry = UNINITIALISED;
- SP->_nl = TRUE;
- SP->_raw = FALSE;
- SP->_cbreak = FALSE;
- SP->_echo = TRUE;
- SP->_nlmapping = TRUE;
- SP->_fifohead = -1;
- SP->_fifotail = 0;
- SP->_fifopeek = 0;
- SP->_endwin = FALSE;
- SP->_checkfd = fileno(ifp);
- typeahead(fileno(ifp));
-
- if (enter_ca_mode)
- putp(enter_ca_mode);
-
- init_acs();
-
- T(("creating newscr"));
- if ((newscr = newwin(lines, columns, 0, 0)) == (WINDOW *)NULL)
- return(NULL);
-
- T(("creating curscr"));
- if ((curscr = newwin(lines, columns, 0, 0)) == (WINDOW *)NULL)
- return(NULL);
-
- SP->_newscr = newscr;
- SP->_curscr = curscr;
-
- newscr->_clear = TRUE;
- curscr->_clear = FALSE;
-
- stolen = topstolen = 0;
- for (rsp = rippedoff; rsp->line; rsp++) {
- if (rsp->hook) {
- if (rsp->line < 0)
- rsp->hook(newwin(1,COLS, LINES-1,0), COLS);
- else
- rsp->hook(newwin(1,COLS, topstolen++,0), COLS);
- }
- --LINES;
- stolen++;
- }
-
- act.sa_handler = tstp;
- sigemptyset(&act.sa_mask);
- act.sa_flags = 0;
- sigaction(SIGTSTP, &act, NULL);
- act.sa_handler = cleanup;
- sigaction(SIGINT, &act, NULL);
- sigaction(SIGTERM, &act, NULL);
-#if 0
- sigaction(SIGSEGV, &act, NULL);
-#endif
- act.sa_handler = size_change;
- act.sa_flags = SA_RESTART;
- sigaction(SIGWINCH, &act, NULL); /* this must restart read() */
- if ((stdscr = newwin(lines - stolen, columns, topstolen, 0)) == NULL)
- return(NULL);
-
- SP->_stdscr = stdscr;
-
- def_shell_mode();
- def_prog_mode();
-
- T(("newterm returns %x", SP));
-
- return(SP);
-}
-
-int
-ripoffline(int line, int (*init)(WINDOW *, int))
-{
- if (line == 0)
- return(OK);
-
- if (rsp >= rippedoff + sizeof(rippedoff)/sizeof(rippedoff[0]))
- return(ERR);
-
- rsp->line = line;
- rsp->hook = init;
- rsp++;
-
- return(OK);
-}
-