summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>2015-11-14 23:56:51 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>2015-11-14 23:56:51 +0000
commit859425bc8c199eb5b1d0cf55d9cb3988ac2fa102 (patch)
tree719f25df1dc44451e4806bf2b207c0b5054cb911 /lib
parent3a40f36a51668b8edf062c8f7c9fce866ff3e547 (diff)
libocurses can go to the Attic. last consumer of it was ramdisk more(1)
conceptual ok guenther millert nicm
Diffstat (limited to 'lib')
-rw-r--r--lib/Makefile4
-rw-r--r--lib/libcurses/term.h8
-rw-r--r--lib/libocurses/EXAMPLES/ex1.c99
-rw-r--r--lib/libocurses/Makefile35
-rw-r--r--lib/libocurses/PSD.doc/Makefile40
-rw-r--r--lib/libocurses/PSD.doc/Master50
-rw-r--r--lib/libocurses/PSD.doc/appen.A73
-rw-r--r--lib/libocurses/PSD.doc/appen.B197
-rw-r--r--lib/libocurses/PSD.doc/appen.C123
-rw-r--r--lib/libocurses/PSD.doc/c_macros66
-rw-r--r--lib/libocurses/PSD.doc/doc.I345
-rw-r--r--lib/libocurses/PSD.doc/doc.II138
-rw-r--r--lib/libocurses/PSD.doc/doc.III339
-rw-r--r--lib/libocurses/PSD.doc/doc.IV106
-rw-r--r--lib/libocurses/PSD.doc/ex1.c98
-rw-r--r--lib/libocurses/PSD.doc/ex2.c206
-rw-r--r--lib/libocurses/PSD.doc/fns.doc795
-rw-r--r--lib/libocurses/PSD.doc/intro.0102
-rw-r--r--lib/libocurses/PSD.doc/intro.1245
-rw-r--r--lib/libocurses/PSD.doc/intro.273
-rw-r--r--lib/libocurses/PSD.doc/intro.3224
-rw-r--r--lib/libocurses/PSD.doc/intro.465
-rw-r--r--lib/libocurses/PSD.doc/intro.584
-rw-r--r--lib/libocurses/PSD.doc/intro.640
-rw-r--r--lib/libocurses/PSD.doc/life.c159
-rw-r--r--lib/libocurses/PSD.doc/macros140
-rw-r--r--lib/libocurses/PSD.doc/twinkle1.c153
-rw-r--r--lib/libocurses/PSD.doc/twinkle2.c92
-rw-r--r--lib/libocurses/PSD.doc/win_st.c54
-rw-r--r--lib/libocurses/TEST/tc1.c49
-rw-r--r--lib/libocurses/TEST/tc2.c76
-rw-r--r--lib/libocurses/TEST/tc3.c98
-rw-r--r--lib/libocurses/addbytes.c150
-rw-r--r--lib/libocurses/addch.c59
-rw-r--r--lib/libocurses/addnstr.c55
-rw-r--r--lib/libocurses/box.c71
-rw-r--r--lib/libocurses/clear.c46
-rw-r--r--lib/libocurses/clrtobot.c68
-rw-r--r--lib/libocurses/clrtoeol.c76
-rw-r--r--lib/libocurses/cr_put.c426
-rw-r--r--lib/libocurses/ctrace.c57
-rw-r--r--lib/libocurses/cur_hash.c55
-rw-r--r--lib/libocurses/curses.c67
-rw-r--r--lib/libocurses/curses.h335
-rw-r--r--lib/libocurses/delch.c56
-rw-r--r--lib/libocurses/deleteln.c75
-rw-r--r--lib/libocurses/delwin.c73
-rw-r--r--lib/libocurses/erase.c65
-rw-r--r--lib/libocurses/fullname.c53
-rw-r--r--lib/libocurses/getch.c68
-rw-r--r--lib/libocurses/getstr.c50
-rw-r--r--lib/libocurses/id_subwins.c58
-rw-r--r--lib/libocurses/idlok.c47
-rw-r--r--lib/libocurses/initscr.c88
-rw-r--r--lib/libocurses/insch.c68
-rw-r--r--lib/libocurses/insertln.c75
-rw-r--r--lib/libocurses/longname.c49
-rw-r--r--lib/libocurses/move.c55
-rw-r--r--lib/libocurses/mvwin.c70
-rw-r--r--lib/libocurses/newwin.c237
-rw-r--r--lib/libocurses/ocurses.3270
-rw-r--r--lib/libocurses/otermcap.3270
-rw-r--r--lib/libocurses/overlay.c75
-rw-r--r--lib/libocurses/overwrite.c69
-rw-r--r--lib/libocurses/pathnames.h36
-rw-r--r--lib/libocurses/printw.c142
-rw-r--r--lib/libocurses/putchar.c42
-rw-r--r--lib/libocurses/refresh.c821
-rw-r--r--lib/libocurses/scanw.c120
-rw-r--r--lib/libocurses/scroll.c64
-rw-r--r--lib/libocurses/setterm.c232
-rw-r--r--lib/libocurses/shlib_version2
-rw-r--r--lib/libocurses/standout.c60
-rw-r--r--lib/libocurses/termcap.c214
-rw-r--r--lib/libocurses/tgoto.c220
-rw-r--r--lib/libocurses/toucholap.c70
-rw-r--r--lib/libocurses/touchwin.c113
-rw-r--r--lib/libocurses/tputs.c120
-rw-r--r--lib/libocurses/tscroll.c132
-rw-r--r--lib/libocurses/tstp.c117
-rw-r--r--lib/libocurses/tty.c274
-rw-r--r--lib/libocurses/unctrl.c100
82 files changed, 4 insertions, 10587 deletions
diff --git a/lib/Makefile b/lib/Makefile
index 1e2b2db29b9..bdc2f6da6f0 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -1,9 +1,9 @@
-# $OpenBSD: Makefile,v 1.70 2015/07/23 06:04:12 yasuoka Exp $
+# $OpenBSD: Makefile,v 1.71 2015/11/14 23:56:49 deraadt Exp $
# $NetBSD: Makefile,v 1.20.4.1 1996/06/14 17:22:38 cgd Exp $
SUBDIR= csu libarch libc libcrypto libcurses libedit libevent libexpat \
libform libfuse libkeynote libkvm libl libm libmenu \
- libocurses libossaudio libpanel libpcap libradius librthread \
+ libossaudio libpanel libpcap libradius librthread \
librpcsvc libskey libsndio libsqlite3 libssl libtls libusbhid \
libutil liby libz
diff --git a/lib/libcurses/term.h b/lib/libcurses/term.h
index 0942f33ad8f..f3050c2a65a 100644
--- a/lib/libcurses/term.h
+++ b/lib/libcurses/term.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: term.h,v 1.14 2010/01/12 23:21:59 nicm Exp $ */
+/* $OpenBSD: term.h,v 1.15 2015/11/14 23:56:49 deraadt Exp $ */
/****************************************************************************
* Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
@@ -34,7 +34,7 @@
/* and: Thomas E. Dickey 1995-on */
/****************************************************************************/
-/* $Id: term.h,v 1.14 2010/01/12 23:21:59 nicm Exp $ */
+/* $Id: term.h,v 1.15 2015/11/14 23:56:49 deraadt Exp $ */
/*
** term.h -- Definition of struct term
@@ -43,10 +43,6 @@
#ifndef NCURSES_TERM_H_incl
#define NCURSES_TERM_H_incl 1
-#ifdef _USE_OLD_CURSES_
-#error Cannot mix ncurses term.h with old curses.h
-#endif
-
#undef NCURSES_VERSION
#define NCURSES_VERSION "5.7"
diff --git a/lib/libocurses/EXAMPLES/ex1.c b/lib/libocurses/EXAMPLES/ex1.c
deleted file mode 100644
index 5c54c899254..00000000000
--- a/lib/libocurses/EXAMPLES/ex1.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (c) 1992, 1993
- * The Regents of the University of California. All rights reserved.
- *
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/types.h>
-#include <curses.h>
-#include <stdio.h>
-#include <signal.h>
-
-
-#define YSIZE 10
-#define XSIZE 20
-
-int quit();
-
-main()
-{
- int i, j, c;
- size_t len;
- char id[100];
- FILE *fp;
- char *s;
-
- initscr(); /* Always call initscr() first */
- signal(SIGINT, quit); /* Make sure wou have a 'cleanup' fn */
- crmode(); /* We want cbreak mode */
- noecho(); /* We want to have control of chars */
- delwin(stdscr); /* Create our own stdscr */
- stdscr = newwin(YSIZE, XSIZE, 10, 35);
- flushok(stdscr, TRUE); /* Enable flushing of stdout */
- scrollok(stdscr, TRUE); /* Enable scrolling */
- erase(); /* Initially, clear the screen */
-
- standout();
- move(0,0);
- while (1) {
- c = getchar();
- switch(c) {
- case 'q': /* Quit on 'q' */
- quit();
- break;
- case 's': /* Go into standout mode on 's' */
- standout();
- break;
- case 'e': /* Exit standout mode on 'e' */
- standend();
- break;
- case 'r': /* Force a refresh on 'r' */
- wrefresh(curscr);
- break;
- default: /* By default output the character */
- addch(c);
- refresh();
- }
- }
-}
-
-
-int
-quit()
-{
- erase(); /* Terminate by erasing the screen */
- refresh();
- endwin(); /* Always end with endwin() */
- delwin(curscr); /* Return storage */
- delwin(stdscr);
- putchar('\n');
- exit(0);
-}
-
-
-
-
diff --git a/lib/libocurses/Makefile b/lib/libocurses/Makefile
deleted file mode 100644
index 10dd6b0cbb0..00000000000
--- a/lib/libocurses/Makefile
+++ /dev/null
@@ -1,35 +0,0 @@
-# $OpenBSD: Makefile,v 1.11 2012/08/02 13:38:39 okan Exp $
-
-CFLAGS+=#-DTFILE=\"/dev/ttyp0\"
-CFLAGS+=-D_CURSES_PRIVATE -I${.CURDIR}
-CFLAGS+=-DCM_N -DCM_GT -DCM_B -DCM_D
-LIB= ocurses
-SRCS= addbytes.c addch.c addnstr.c box.c clear.c clrtobot.c clrtoeol.c \
- cr_put.c ctrace.c cur_hash.c curses.c delch.c deleteln.c delwin.c \
- erase.c fullname.c getch.c getstr.c id_subwins.c idlok.c initscr.c \
- insch.c insertln.c longname.c move.c mvwin.c newwin.c overlay.c \
- overwrite.c printw.c putchar.c refresh.c scanw.c scroll.c setterm.c \
- standout.c toucholap.c touchwin.c tscroll.c tstp.c tty.c unctrl.c
-SRCS+= termcap.c tgoto.c tputs.c
-MAN= ocurses.3 otermcap.3
-
-includes:
- -cd ${.CURDIR}; cmp -s curses.h ${DESTDIR}/usr/include/ocurses.h || \
- ${INSTALL} ${INSTALL_COPY} -o ${BINOWN} -g ${BINGRP} -m 444 \
- curses.h ${DESTDIR}/usr/include/ocurses.h
-
-.include <bsd.own.mk>
-
-# Link libotermcap to libocurses for programs that need full compatibility
-# with the old termcap behavior
-afterinstall:
- -cd ${DESTDIR}${LIBDIR}; \
- for i in ${_LIBS}; do \
- ln -f $$i `echo $$i | sed 's/ocurses/otermcap/'`; \
- done
-.if (${DEBUGLIBS:L} == "yes")
- -cd ${DESTDIR}${LIBDIR}/debug; \
- ln -f lib${LIB}.a lib`echo ${LIB} | sed 's/ocurses/otermcap/'`.a
-.endif
-
-.include <bsd.lib.mk>
diff --git a/lib/libocurses/PSD.doc/Makefile b/lib/libocurses/PSD.doc/Makefile
deleted file mode 100644
index 33c4a93344c..00000000000
--- a/lib/libocurses/PSD.doc/Makefile
+++ /dev/null
@@ -1,40 +0,0 @@
-# @(#)Makefile 8.2 (Berkeley) 5/23/94
-
-DIR= psd/19.curses
-SRCS= Master
-MACROS= -me
-EXTRA= appen.A appen.B appen.C c_macros doc.I doc.II doc.III \
- doc.IV ex1.c ex2.c fns.doc intro.0 intro.1 intro.2 intro.3 \
- intro.4 intro.5 intro.6 life.c macros twinkle1.c twinkle2.c \
- win_st.c
-
-CLEANFILES+=win_st.gr twinkle1.gr twinkle2.gr life.gr intro.2.tbl appen.A.tbl \
- ex1.gr ex2.gr
-
-.SUFFIXES:
-.SUFFIXES: .c .gr
-
-#
-# this section formats C input source into nice troffable (or nroffable)
-# versions. It uses the capabilites of "vgrind", which sets keywords in
-# bold font, and comments in italics.
-#
-
-# Don't re-run vgrind unless you want to patch the output files.
-VFONT= /usr/libexec/vfontedpr
-.c.gr:
- ${VFONT} $*.c | grep -v "^'wh" > $*.gr
-
-paper.ps: ${SRCS}
- soelim ${SRCS} | ${ROFF} > ${.TARGET}
-
-paper.txt: ${SRCS}
- soelim ${SRCS} | ${ROFF} -Tascii > ${.TARGET}
-
-Master: twinkle1.gr ex1.gr ex2.gr fns.doc intro.5 intro.2.tbl intro.0 intro.1 \
- intro.3 intro.4 intro.6 macros c_macros
-
-intro.2.tbl: intro.2
- ${TBL} intro.2 > intro.2.tbl
-
-.include <bsd.doc.mk>
diff --git a/lib/libocurses/PSD.doc/Master b/lib/libocurses/PSD.doc/Master
deleted file mode 100644
index 34f0308027f..00000000000
--- a/lib/libocurses/PSD.doc/Master
+++ /dev/null
@@ -1,50 +0,0 @@
-.\" Copyright (c) 1980, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)Master 8.2 (Berkeley) 5/24/94
-.\"
-.ds Ln Screen Package
-.so macros
-.so c_macros
-.so intro.0
-.pn 3
-.bp
-.so intro.1
-.so intro.2.tbl
-.so intro.3
-.so intro.4
-.so intro.5
-.so intro.6
-.bp
-.so appen.A
-.pn 2
-.oh '\*(Ln''PSD:19-%'
-.eh 'PSD:19-%''\*(Ln'
-.bp
-.bi Contents
-.sp
-.xp
diff --git a/lib/libocurses/PSD.doc/appen.A b/lib/libocurses/PSD.doc/appen.A
deleted file mode 100644
index 12e5cd63fc9..00000000000
--- a/lib/libocurses/PSD.doc/appen.A
+++ /dev/null
@@ -1,73 +0,0 @@
-.\" Copyright (c) 1980, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)appen.A 8.1 (Berkeley) 6/8/93
-.\"
-.ie t .oh '\*(Ln Appendix A''PS1:19-%'
-.eh 'PS1:19-%''\*(Ln Appendix A'
-.el .he ''\fIAppendix A\fR''
-.bp
-.(x
-.ti 0
-.b "Appendix A"
-.)x
-.sh 1 "Examples" 1
-.pp
-Here we present a few examples
-of how to use the package.
-They attempt to be representative,
-though not comprehensive. Further examples can be found in the games section
-of the source tree and in various utilities that use the screen such as
-.i systat(1) .
-.pp
-The following examples are intended to demonstrate
-the basic structure of a program
-using the package. An additional, more comprehensive, program can be found in
-the source code in the
-\fIexamples\fP subdirectory.
-.sh 2 "Simple Character Output"
-.pp
-This program demonstrates how to set up a window and output characters to it.
-Also, it demonstrates how one might control the output to the window. If
-you run this program, you will get a demonstration of the character output
-chracteristics discussed in the above Character Output section.
-.(l I
-.so ex1.gr
-.)l
-.sh 2 "Twinkle"
-.pp
-This is a moderately simple program which prints
-patterns on the screen.
-It switches between patterns of asterisks,
-putting them on one by one in random order,
-and then taking them off in the same fashion.
-It is more efficient to write this
-using only the motion optimization,
-as is demonstrated below.
-.(l I
-.so twinkle1.gr
-.)l
diff --git a/lib/libocurses/PSD.doc/appen.B b/lib/libocurses/PSD.doc/appen.B
deleted file mode 100644
index 7de129e70e3..00000000000
--- a/lib/libocurses/PSD.doc/appen.B
+++ /dev/null
@@ -1,197 +0,0 @@
-.\" Copyright (c) 1980, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)appen.B 8.1 (Berkeley) 6/8/93
-.\"
-.ie t .oh '\*(Ln Appendix B''PS1:19-%'
-.eh 'PS1:19-%''\*(Ln Appendix B'
-.el .he ''\fIAppendix B\fR''
-.bp
-.(x
-.ti 0
-.b "Appendix B"
-.)x
-.nr $1 0
-.sh 1 "The WINDOW structure"
-.pp
-The WINDOW structure is defined as follows:
-.(l I
-.so win_st.gr
-.)l
-.pp
-.Vn \*_cury \\*
-.(f
-\**
-All variables not normally accessed directly by the user
-are named with an initial
-.Bq \*_
-to avoid conflicts with the user's variables.
-.)f
-and
-.Vn \*_curx
-are the current \*y for the window.
-New characters added to the screen
-are added at this point.
-.Vn \*_maxy
-and
-.Vn \*_maxx
-are the maximum values allowed for
-.Vn \*_cury\*,\*_curx ). (
-.Vn \*_begy
-and
-.Vn \*_begx
-are the starting \*y on the terminal for the window,
-.i i.e. ,
-the window's home.
-.Vn \*_cury ,
-.Vn \*_curx ,
-.Vn \*_maxy ,
-and
-.Vn \*_maxx
-are measured relative to
-.Vn \*_begy\*,\*_begx ), (
-not the terminal's home.
-.pp
-.Vn \*_clear
-tells if a clear-screen sequence is to be generated
-on the next
-.Fn refresh
-call.
-This is only meaningful for screens.
-The initial clear-screen for the first
-.Fn refresh
-call is generated by initially setting clear to be TRUE for
-.Vn curscr ,
-which always generates a clear-screen if set,
-irrelevant of the dimensions of the window involved.
-.Vn \*_leave
-is TRUE if the current \*y and the cursor
-are to be left after the last character changed on the terminal,
-or not moved if there is no change.
-.Vn \*_scroll
-is TRUE
-if scrolling is allowed.
-.pp
-.Vn \*_y
-is a pointer to an array of lines which describe the terminal.
-Thus:
-.(l
-\*_y[i]
-.)l
-.lp
-is a pointer to the
-.Vn i th
-line, and
-.(l
-\*_y[i][j]
-.)l
-.lp
-is the
-.Vn j th
-character on the
-.Vn i th
-line.
-.Vn \*_flags
-can have one or more values
-or'd into it.
-.pp
-For windows that are not subwindows,
-.Vn \*_orig
-is
-NULL .
-For subwindows,
-it points to the main window
-to which the window is subsidiary.
-.Vn \*_nextp
-is a pointer in a circularly linked list
-of all the windows which are subwindows of the same main window,
-plus the main window itself.
-.pp
-.Vn \*_firstch
-and
-.Vn \*_lastch
-are
-.Fn malloc ed
-arrays which contain the index of the
-first and last changed characters
-on the line.
-.Vn \*_ch\*_off
-is the x offset for the window
-in the
-.Vn \*_firstch
-and
-.Vn \*_lastch
-arrays for this window.
-For main windows,
-this is always 0;
-for subwindows
-it is the difference between the starting point of the main window
-and that of the subindow,
-so that change markers can be set relative to the main window.
-This makes these markers global in scope.
-.pp
-All subwindows share the appropriate portions of
-.Vn _y ,
-.Vn _firstch ,
-.Vn _lastch ,
-and
-.Vn _insdel
-with their main window.
-.pp
-.b \*_ENDLINE
-says that the end of the line for this window
-is also the end of a screen.
-.b \*_FULLWIN
-says that this window is a screen.
-.b \*_SCROLLWIN
-indicates that the last character of this screen
-is at the lower right-hand corner of the terminal;
-.i i.e. ,
-if a character was put there,
-the terminal would scroll.
-.b \*_FULLLINE
-says that the width of a line is the same as the width of the terminal.
-If
-.b \*_FLUSH
-is set,
-it says that
-.Fn fflush "" "" stdout
-should be called at the end of each
-.Fn refresh
-.b \*_STANDOUT
-says that all characters added to the screen
-are in standout mode.
-.b \*_INSDEL
-is reserved for future use,
-and is set by
-.Fn idlok .
-.Vn \*_firstch
-is set to
-.b \*_NOCHANGE
-for lines on which there has been no change
-since the last
-.Fn refresh .
diff --git a/lib/libocurses/PSD.doc/appen.C b/lib/libocurses/PSD.doc/appen.C
deleted file mode 100644
index 29dc2a67925..00000000000
--- a/lib/libocurses/PSD.doc/appen.C
+++ /dev/null
@@ -1,123 +0,0 @@
-.\" Copyright (c) 1980, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)appen.C 8.1 (Berkeley) 6/8/93
-.\"
-.ie t .oh '\*(Ln Appendix A''PS1:19-%'
-.eh 'PS1:19-%''\*(Ln Appendix A'
-.el .he ''\fIAppendix A\fR''
-.bp
-.(x
-.ti 0
-.b "Appendix A"
-.)x
-.sh 1 "Examples" 1
-.pp
-Here we present a few examples
-of how to use the package.
-They attempt to be representative,
-though not comprehensive. Further examples can be found in the games section
-of the source tree and in various utilities that use the screen such as
-.i systat(1) .
-.sh 2 "Screen Updating"
-.pp
-The following examples are intended to demonstrate
-the basic structure of a program
-using the screen updating sections of the package.
-Several of the programs require calculational sections
-which are irrelevant of to the example,
-and are therefore usually not included.
-It is hoped that the data structure definitions
-give enough of an idea to allow understanding
-of what the relevant portions do.
-.sh 3 "Simple Character Output"
-.pp
-This program demonstrates how to set up a window and output characters to it.
-Also, it demonstrates how one might control the output to the window. If
-you run this program, you will get a demonstration of the character output
-chracteristics discussed in the above Character Output section.
-.(l I
-.so t2.gr
-.)l
-.sh 3 "A Small Screen Manipulator"
-.pp
-The next example follows the lines of the previous one but extends then to
-demonstrate the various othe uses of the package. Make sure you understand
-how this program works as it encompasses most of anything you will
-need to do with the package.
-.(l I
-.so t3.gr
-.)l
-.sh 3 "Twinkle"
-.pp
-This is a moderately simple program which prints
-patterns on the screen.
-It switches between patterns of asterisks,
-putting them on one by one in random order,
-and then taking them off in the same fashion.
-It is more efficient to write this
-using only the motion optimization,
-as is demonstrated below.
-.(l I
-.so twinkle1.gr
-.)l
-.sh 3 "Life"
-.pp
-This program fragment models the famous computer pattern game of life
-(Scientific American, May, 1974).
-The calculational routines create a linked list of structures
-defining where each piece is.
-Nothing here claims to be optimal,
-merely demonstrative.
-This code, however,
-is a very good place to use the screen updating routines,
-as it allows them to worry about what the last position looked like,
-so you don't have to.
-It also demonstrates some of the input routines.
-.(l I
-.so life.gr
-.)l
-.sh 2 "Motion optimization"
-.pp
-The following example shows how motion optimization
-is written on its own.
-Programs which flit from one place to another without
-regard for what is already there
-usually do not need the overhead of both space and time
-associated with screen updating.
-They should instead use motion optimization.
-.sh 3 "Twinkle"
-.pp
-The
-.b twinkle
-program
-is a good candidate for simple motion optimization.
-Here is how it could be written
-(only the routines that have been changed are shown):
-.(l
-.so twinkle2.gr
-.)l
diff --git a/lib/libocurses/PSD.doc/c_macros b/lib/libocurses/PSD.doc/c_macros
deleted file mode 100644
index 95949688bd8..00000000000
--- a/lib/libocurses/PSD.doc/c_macros
+++ /dev/null
@@ -1,66 +0,0 @@
-.\" Copyright (c) 1980, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)c_macros 8.1 (Berkeley) 6/4/93
-.\"
-'ie t 'ds _ \d\(mi\u
-'el 'ds _ _
-'tr *\(**
-'ps 9p
-'vs 10p
-'ds - \(mi
-'ds /* \\h'\\w' 'u-\\w'/'u'/*
-'bd B 3
-'bd S B 3
-'nr cm 0
-'nf
-'de ()
-'pn 1
-..
-'de +C
-'nr cm 1
-'ft 2
-'ds +K
-'ds -K
-..
-'de -C
-'nr cm 0
-'ft 1
-.ie t 'ds +K \f3
-.el 'ds +K \fI
-'ds -K \fP
-..
-'+C
-'-C
-'am +C
-'ne 3
-..
-'de -F
-'rm =f
-..
-'ft 1
-'lg 0
diff --git a/lib/libocurses/PSD.doc/doc.I b/lib/libocurses/PSD.doc/doc.I
deleted file mode 100644
index 946b95f946c..00000000000
--- a/lib/libocurses/PSD.doc/doc.I
+++ /dev/null
@@ -1,345 +0,0 @@
-.\" Copyright (c) 1980, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)doc.I 8.1 (Berkeley) 6/4/93
-.\"
-.Ds
-.Fd addch ch \*m
-char ch;
-.Fd waddch win\*,ch
-WINDOW *win;
-char ch;
-.De
-Add the character
-.Vn ch
-on the window
-at the current \*y.
-If the character is a newline
-(\'\en\')
-the line will be cleared to the end,
-and the current \*y will be changed to the
-beginning off the next line
-if newline mapping is on,
-or to the next line at the same x co-ordinate
-if it is off.
-A return
-(\'\er\')
-will move to the beginning of the line on the window.
-Tabs
-(\'\et\')
-will be expanded into spaces
-in the normal tabstop positions of
-every eight characters.
-\*(Es
-.Ds
-.Fd addstr str \*m
-char *str;
-.Fd waddstr win\*,str
-WINDOW *win;
-char *str;
-.De
-Add the string pointed to by
-.Vn str
-on the window at the current \*y.
-\*(Es
-In this case, it will put on as much as it can.
-.Ds
-.Fd box win\*,vert\*,hor
-WINDOW *win;
-char vert\*,hor;
-.De
-.Pp
-Draws a box around the window using
-.Vn vert
-as the character for drawing the vertical sides, and
-.Vn hor
-for drawing the horizontal lines.
-If scrolling is not allowed,
-and the window encompasses the lower right-hand corner of the terminal,
-the corners are left blank to avoid a scroll.
-.Ds
-.Fd clear "" \*m
-.Fd wclear win
-WINDOW *win;
-.De
-Resets the entire window to blanks.
-If
-.Vn win
-is a screen,
-this sets the clear flag,
-which will cause a clear-screen sequence to be sent
-on the next
-.Fn refresh
-call.
-This also moves the current \*y
-to (0\*,0).
-.Ds
-.Fd clearok scr\*,boolf \*m
-WINDOW *scr;
-bool boolf;
-.De
-Sets the clear flag for the screen
-.Vn scr .
-If
-.Vn boolf
-is TRUE,
-this will force a clear-screen to be printed on the next
-.Fn refresh ,
-or stop it from doing so if
-.Vn boolf
-is FALSE.
-This only works on screens,
-and,
-unlike
-.Fn clear ,
-does not alter the contents of the screen.
-If
-.Vn scr
-is
-.Vn curscr ,
-the next
-.Fn refresh
-call will cause a clear-screen,
-even if the window passed to
-.Fn refresh
-is not a screen.
-.Ds
-.Fd clrtobot "" \*m
-.Fd wclrtobot win
-WINDOW *win;
-.De
-Wipes the window clear from the current \*y to the bottom.
-This does not force a clear-screen sequence on the next refresh
-under any circumstances.
-\*(Nm
-.Ds
-.Fd clrtoeol "" \*m
-.Fd wclrtoeol win
-WINDOW *win;
-.De
-Wipes the window clear from the current \*y to the end of the line.
-\*(Nm
-.Ds
-.Fd delch
-.Fd wdelch win
-WINDOW *win;
-.De
-Delete the character at the current \*y.
-Each character after it on the line shifts to the left,
-and the last character becomes blank.
-.Ds
-.Fd deleteln
-.Fd wdeleteln win
-WINDOW *win;
-.De
-Delete the current line.
-Every line below the current one will move up,
-and the bottom line will become blank.
-The current \*y will remain unchanged.
-.Ds
-.Fd erase "" \*m
-.Fd werase win
-WINDOW *win;
-.De
-Erases the window to blanks without setting the clear flag.
-This is analagous to
-.Fn clear ,
-except that it never causes a clear-screen sequence to be generated
-on a
-.Fn refresh .
-\*(Nm
-.Ds
-.Fd flushok win\*,boolf \*m
-WINDOW *win;
-bool boolf;
-.De
-Normally,
-.Fn refresh
-.Fn fflush 's
-.Vn stdout
-when it is finished.
-.Fn flushok
-allows you to control this.
-if
-.Vn boolf
-is TRUE
-(\c
-.i i.e. ,
-non-zero)
-it will do the
-.Fn fflush ;
-if it is FALSE.
-it will not.
-.Ds
-.Fd idlok win\*,boolf
-WINDOW *win;
-bool boolf;
-.De
-Reserved for future use.
-This will eventually signal to
-.Fn refresh
-that it is all right to use the insert and delete line sequences
-when updating the window.
-.Ds
-.Fd insch c
-char c;
-.Fd winsch win\*,c
-WINDOW *win;
-char c;
-.De
-Insert
-.Vn c
-at the current \*y
-Each character after it shifts to the right,
-and the last character disappears.
-\*(Es
-.Ds
-.Fd insertln
-.Fd winsertln win
-WINDOW *win;
-.De
-Insert a line above the current one.
-Every line below the current line
-will be shifted down,
-and the bottom line will disappear.
-The current line will become blank,
-and the current \*y will remain unchanged.
-.Ds
-.Fd move y\*,x \*m
-int y\*,x;
-.Fd wmove win\*,y\*,x
-WINDOW *win;
-int y\*,x;
-.De
-Change the current \*y of the window to
-.Vn y\*,x ). (
-\*(Es
-.Ds
-.Fd overlay win1\*,win2
-WINDOW *win1\*,*win2;
-.De
-Overlay
-.Vn win1
-on
-.Vn win2 .
-The contents of
-.Vn win1 ,
-insofar as they fit,
-are placed on
-.Vn win2
-at their starting \*y.
-This is done non-destructively,
-i.e., blanks on
-.Vn win1
-leave the contents of the space on
-.Vn win2
-untouched.
-.Ds
-.Fd overwrite win1\*,win2
-WINDOW *win1\*,*win2;
-.De
-Overwrite
-.Vn win1
-on
-.Vn win2 .
-The contents of
-.Vn win1 ,
-insofar as they fit,
-are placed on
-.Vn win2
-at their starting \*y.
-This is done destructively,
-.i i.e. ,
-blanks on
-.Vn win1
-become blank on
-.Vn win2 .
-.Ds
-.Fd printw fmt\*,arg1\*,arg2\*,...
-char *fmt;
-.Fd wprintw win\*,fmt\*,arg1\*,arg2\*,...
-WINDOW *win;
-char *fmt;
-.De
-Performs a
-.Fn printf
-on the window starting at the current \*y.
-It uses
-.Fn addstr
-to add the string on the window.
-It is often advisable to use the field width options of
-.Fn printf
-to avoid leaving things on the window from earlier calls.
-\*(Es
-.Ds
-.Fd refresh "" \*m
-.Fd wrefresh win
-WINDOW *win;
-.De
-Synchronize the terminal screen with the desired window.
-If the window is not a screen,
-only that part covered by it is updated.
-\*(Es
-In this case, it will update whatever it can
-without causing the scroll.
-.sp
-As a special case,
-if
-.Fn wrefresh
-is called with the window
-.Vn curscr
-the screen is cleared
-and repainted as it is currently.
-This is very useful for allowing the redrawing of the screen
-when the user has garbage dumped on his terminal.
-.Ds
-.Fd standout "" \*m
-.Fd wstandout win
-WINDOW *win;
-.Fd standend "" \*m
-.Fd wstandend win
-WINDOW *win;
-.De
-Start and stop putting characters onto
-.i win
-in standout mode.
-.Fn standout
-causes any characters added to the window
-to be put in standout mode on the terminal
-(if it has that capability).
-.Fn standend
-stops this.
-The sequences
-.Vn SO
-and
-.Vn SE
-(or
-.Vn US
-and
-.Vn UE
-if they are not defined)
-are used (see Appendix A).
diff --git a/lib/libocurses/PSD.doc/doc.II b/lib/libocurses/PSD.doc/doc.II
deleted file mode 100644
index df4db62f19b..00000000000
--- a/lib/libocurses/PSD.doc/doc.II
+++ /dev/null
@@ -1,138 +0,0 @@
-.\" Copyright (c) 1980, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)doc.II 8.1 (Berkeley) 6/4/93
-.\"
-.Ds
-.Fd cbreak "" \*m
-.Fd nocbreak "" \*m
-.Fd crmode "" \*m
-.Fd nocrmode "" \*m
-.De
-Set or unset the terminal to/from cbreak mode.
-The misnamed macros
-.Fn crmode
-and
-.Fn nocrmode
-are retained for backwards compatibility
-with ealier versions of the library.
-.Ds
-.Fd echo "" \*m
-.Fd noecho "" \*m
-.De
-Sets the terminal to echo or not echo characters.
-.Ds
-.Fd getch "" \*m
-.Fd wgetch win
-WINDOW *win;
-.De
-Gets a character from the terminal and (if necessary)
-echos it on the window.
-\*(Es
-Otherwise, the character gotten is returned.
-If
-.i noecho
-has been set, then the window is left unaltered.
-In order to retain control of the terminal,
-it is necessary to have one of
-.i noecho ,
-.i cbreak ,
-or
-.i rawmode
-set.
-If you do not set one,
-whatever routine you call to read characters will set
-.i cbreak
-for you,
-and then reset to the original mode when finished.
-.Ds
-.Fd getstr str \*m
-char *str;
-.Fd wgetstr win\*,str
-WINDOW *win;
-char *str;
-.De
-Get a string through the window
-and put it in the location pointed to by
-.Vn str ,
-which is assumed to be large enough to handle it.
-It sets tty modes if necessary,
-and then calls
-.Fn getch
-(or
-.Fn wgetch ) "" win
-to get the characters needed to fill in the string
-until a newline or EOF is encountered.
-The newline stripped off the string.
-\*(Es
-.Ds
-.Fd \*_putchar c
-char c;
-.De
-Put out a character using the
-.Fn putchar
-macro.
-This function is used to output every character
-that
-.b curses
-generates.
-Thus,
-it can be redefined by the user who wants to do non-standard things
-with the output.
-It is named with an initial \*(lq\*_\*(rq
-because it usually should be invisible to the programmer.
-.Ds
-.Fd raw "" \*m
-.Fd noraw "" \*m
-.De
-Set or unset the terminal to/from raw mode.
-On version 7
-.Un \**
-.(f
-\**
-.Un
-is a trademark of Bell Laboratories.
-.)f
-this also turns of newline mapping
-(see
-.Fn nl ).
-.Ds
-.Fd scanw fmt\*,arg1\*,arg2\*,...
-char *fmt;
-.Fd wscanw win\*,fmt\*,arg1\*,arg2\*,...
-WINDOW *win;
-char *fmt;
-.De
-Perform a
-.Fn scanf
-through the window using
-.Vn fmt .
-It does this using consecutive
-.Fn getch 's
-(or
-.Fn wgetch 's). "" win
-\*(Es
diff --git a/lib/libocurses/PSD.doc/doc.III b/lib/libocurses/PSD.doc/doc.III
deleted file mode 100644
index cdf5537d152..00000000000
--- a/lib/libocurses/PSD.doc/doc.III
+++ /dev/null
@@ -1,339 +0,0 @@
-.\" Copyright (c) 1980, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)doc.III 8.1 (Berkeley) 6/4/93
-.\"
-.Ds
-.Fd baudrate "" \*m
-.De
-Returns the output baud rate of the terminal.
-This is a system dependent constant
-(defined in
-.b <sys/tty.h>
-on BSD systems,
-which is included by
-.b <curses.h> ).
-.Ds
-.Fd delwin win
-WINDOW *win;
-.De
-Deletes the window from existence.
-All resources are freed for future use by
-.b calloc (3).
-If a window has a
-.Fn subwin
-allocated window inside of it,
-deleting the outer window
-the subwindow is not affected,
-even though this does invalidate it.
-Therefore,
-subwindows should be deleted before their
-outer windows are.
-.Ds
-.Fd endwin
-.De
-Finish up window routines before exit.
-This restores the terminal to the state it was before
-.Fn initscr
-(or
-.Fn gettmode
-and
-.Fn setterm )
-was called.
-It should always be called before exiting.
-It does not exit.
-This is especially useful for resetting tty stats
-when trapping rubouts via
-.b signal (2).
-.Ds
-.Fd erasechar "" \*m
-.De
-Returns the erase character
-for the terminal,
-.i i.e. ,
-the character used by the user to erase a single character from the input.
-.Ds
-.Fd getcap str "" "char *"
-char *str;
-.De
-Return a pointer to the
-.b termcap
-capability described by
-.Vn str
-(see
-.b termcap (5)
-for details).
-.Ds
-.Fd getyx win\*,y\*,x \*m
-WINDOW *win;
-int y\*,x;
-.De
-Puts the current \*y of
-.Vn win
-in the variables
-.Vn y
-and
-.Vn x .
-Since it is a macro,
-not a function,
-you do not pass the address
-of
-.Vn y
-and
-.Vn x .
-.Ds
-.Fd inch "" \*m
-.Fd winch win \*m
-WINDOW *win;
-.De
-Returns the character at the current \*(y
-on the given window.
-This does not make any changes to the window.
-.Ds
-.Fd initscr
-.De
-Initialize the screen routines.
-This must be called before any of the screen routines are used.
-It initializes the terminal-type data and such,
-and without it none of the routines can operate.
-If standard input is not a tty,
-it sets the specifications to the terminal
-whose name is pointed to by
-.Vn Def\*_term
-(initialy "dumb").
-If the boolean
-.Vn My\*_term
-is true,
-.Vn Def\*_term
-is always used.
-If the system supports the
-.b TIOCGWINSZ
-.Fn ioctl "" "" 2
-call,
-it is used to get the number of lines and columns for the terminal,
-otherwise it is taken from the
-.b termcap
-description.
-.Ds
-.Fd killchar "" \*m
-.De
-Returns the line kill character
-for the terminal,
-.i i.e. ,
-the character used by the user to erase an entire line from the input.
-.Ds
-.Fd leaveok win\*,boolf \*m
-WINDOW *win;
-bool boolf;
-.De
-Sets the boolean flag for leaving the cursor after the last change.
-If
-.Vn boolf
-is TRUE,
-the cursor will be left after the last update on the terminal,
-and the current \*y for
-.Vn win
-will be changed accordingly.
-If it is FALSE,
-it will be moved to the current \*y.
-This flag
-(initialy FALSE)
-retains its value until changed by the user.
-.Ds
-.Fd longname termbuf\*,name
-char *termbuf\*,*name;
-.Fd fullname termbuf\*,name
-char *termbuf\*,*name;
-.De
-.Fn longname
-fills in
-.Vn name
-with the long name of the terminal described by the
-.b termcap
-entry in
-.Vn termbuf .
-It is generally of little use,
-but is nice for telling the user in a readable format what terminal
-we think he has.
-This is available in the global variable
-.Vn ttytype .
-.Vn termbuf
-is usually set via the termlib routine
-.Fn tgetent .
-.Fn fullname
-is the same as
-.Fn longname ,
-except that it gives the fullest name given in the entry,
-which can be quite verbose.
-.Ds
-.Fd mvwin win\*,y\*,x
-WINDOW *win;
-int y, x;
-.De
-Move the home position of the window
-.Vn win
-from its current starting coordinates
-to
-.Vn y\*,x ). (
-If that would put part or all of the window
-off the edge of the terminal screen,
-.Fn mvwin
-returns ERR and does not change anything.
-For subwindows,
-.Fn mvwin
-also returns ERR if you attempt to move it off its main window.
-If you move a main window,
-all subwindows are moved along with it.
-.Ds
-.Fd newwin lines\*,cols\*,begin\*_y\*,begin\*_x "" "WINDOW *"
-int lines\*,cols\*,begin\*_y\*,begin\*_x;
-.De
-Create a new window with
-.Vn lines
-lines and
-.Vn cols
-columns starting at position
-.Vn begin\*_y\*,begin\*_x ). (
-If either
-.Vn lines
-or
-.Vn cols
-is 0 (zero),
-that dimension will be set to
-.Vn "LINES \- begin\*_y" ) (
-or
-.Vn "COLS \- begin\*_x" ) (
-respectively.
-Thus, to get a new window of dimensions
-.Vn LINES
-\(mu
-.Vn COLS ,
-use
-.Fn newwin . "" 0\*,0\*,0\*,0
-.Ds
-.Fd nl "" \*m
-.Fd nonl "" \*m
-.De
-Set or unset the terminal to/from nl mode,
-.i i.e. ,
-start/stop the system from mapping
-.b <RETURN>
-to
-.b <LINE-FEED> .
-If the mapping is not done,
-.Fn refresh
-can do more optimization,
-so it is recommended, but not required, to turn it off.
-.Ds
-.Fd scrollok win\*,boolf \*m
-WINDOW *win;
-bool boolf;
-.De
-Set the scroll flag for the given window.
-If
-.Vn boolf
-is FALSE, scrolling is not allowed.
-This is its default setting.
-.Ds
-.Fd touchline win\*,y\*,startx\*,endx
-WINDOW *win;
-int y\*,startx\*,endx;
-.De
-This function performs a function similar to
-.Fn touchwin
-on a single line.
-It marks the first change for the given line
-to be
-.Vn startx ,
-if it is before the current first change mark,
-and
-the last change mark is set to be
-.Vn endx
-if it is currently less than
-.Vn endx .
-.Ds
-.Fd touchoverlap win1\*,win2
-WINDOW *win1, *win2;
-.De
-Touch the window
-.Vn win2
-in the area which overlaps with
-.Vn win1 .
-If they do not overlap,
-no changes are made.
-.Ds
-.Fd touchwin win
-WINDOW *win;
-.De
-Make it appear that the every location on the window
-has been changed.
-This is usually only needed for refreshes with overlapping windows.
-.Ds
-.Fd subwin win\*,lines\*,cols\*,begin\*_y\*,begin\*_x "" "WINDOW *"
-WINDOW *win;
-int lines\*,cols\*,begin\*_y\*,begin\*_x;
-.De
-Create a new window with
-.Vn lines
-lines and
-.Vn cols
-columns starting at position
-.Vn begin\*_y\*,begin\*_x ) (
-inside the window
-.i win .
-This means that any change made to either window
-in the area covered
-by the subwindow will be made on both windows.
-.Vn begin\*_y\*,begin\*_x
-are specified relative to the overall screen,
-not the relative (0\*,0) of
-.Vn win .
-If either
-.Vn lines
-or
-.Vn cols
-is 0 (zero),
-that dimension will be set to
-.Vn "LINES \- begin\*_y" ) (
-or
-.Vn "COLS \- begin\*_x" ) (
-respectively.
-.Ds
-.Fd unctrl ch \*m
-char ch;
-.De
-This is actually a debug function for the library,
-but it is of general usefulness.
-It returns a string which is a representation of
-.Vn ch .
-Control characters become their upper-case equivalents preceded by a "^".
-Other letters stay just as they are.
-To use
-.Fn unctrl ,
-you may have to have
-.b #include\ <unctrl.h>
-in your file.
diff --git a/lib/libocurses/PSD.doc/doc.IV b/lib/libocurses/PSD.doc/doc.IV
deleted file mode 100644
index fd147ee486b..00000000000
--- a/lib/libocurses/PSD.doc/doc.IV
+++ /dev/null
@@ -1,106 +0,0 @@
-.\" Copyright (c) 1980, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)doc.IV 8.1 (Berkeley) 6/4/93
-.\"
-.Ds
-.Fd gettmode
-.De
-Get the tty stats.
-This is normally called by
-.Fn initscr .
-.Ds
-.Fd mvcur lasty\*,lastx\*,newy\*,newx
-int lasty\*,lastx\*,newy\*,newx;
-.De
-Moves the terminal's cursor from
-.Vn lasty\*,lastx ) (
-to
-.Vn newy\*,newx ) (
-in an approximation of optimal fashion.
-This routine uses the functions borrowed from
-.i ex
-version 2.6.
-It is possible to use this optimization
-without the benefit of the screen routines.
-With the screen routines, this should not be called by the user.
-.Fn move
-and
-.Fn refresh
-should be used to move the cursor position,
-so that the routines know what's going on.
-.Ds
-.Fd scroll win
-WINDOW *win;
-.De
-Scroll the window upward one line.
-This is normally not used by the user.
-.Ds
-.Fd savetty "" \*m
-.Fd resetty "" \*m
-.De
-.Fn savetty
-saves the current tty characteristic flags.
-.Fn resetty
-restores them to what
-.Fn savetty
-stored.
-These functions are performed automatically by
-.Fn initscr
-and
-.Fn endwin .
-.Ds
-.Fd setterm name
-char *name;
-.De
-Set the terminal characteristics to be those of the terminal named
-.Vn name ,
-getting the terminal size from the
-.b TIOCGWINSZ
-.Fn ioctl "" "" 2
-if it exists,
-otherwise from the environment.
-This is normally called by
-.Fn initscr .
-.Ds
-.Fd tstp
-.De
-If the new
-.b tty (4)
-driver is in use,
-this function
-will save the current tty state
-and then put the process to sleep.
-When the process gets restarted,
-it restores the tty state
-and then calls
-.Fn wrefresh "" "" curscr
-to redraw the screen.
-.Fn initscr
-sets the signal
-SIGTSTP
-to trap to this routine.
diff --git a/lib/libocurses/PSD.doc/ex1.c b/lib/libocurses/PSD.doc/ex1.c
deleted file mode 100644
index 7ba384587d6..00000000000
--- a/lib/libocurses/PSD.doc/ex1.c
+++ /dev/null
@@ -1,98 +0,0 @@
-.\" Copyright (c) 1992, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)ex1.c 8.1 (Berkeley) 6/8/93
-.\"
-#include <sys/types.h>
-#include <curses.h>
-#include <stdio.h>
-#include <signal.h>
-
-
-#define YSIZE 10
-#define XSIZE 20
-
-int quit();
-
-main()
-{
- int i, j, c;
- size_t len;
- char id[100];
- FILE *fp;
- char *s;
-
- initscr(); /* Always call initscr() first */
- signal(SIGINT, quit); /* Make sure wou have a 'cleanup' fn */
- crmode(); /* We want cbreak mode */
- noecho(); /* We want to have control of chars */
- delwin(stdscr); /* Create our own stdscr */
- stdscr = newwin(YSIZE, XSIZE, 10, 35);
- flushok(stdscr, TRUE); /* Enable flushing of stdout */
- scrollok(stdscr, TRUE); /* Enable scrolling */
- erase(); /* Initially, clear the screen */
-
- standout();
- move(0,0);
- while (1) {
- c = getchar();
- switch(c) {
- case 'q': /* Quit on 'q' */
- quit();
- break;
- case 's': /* Go into standout mode on 's' */
- standout();
- break;
- case 'e': /* Exit standout mode on 'e' */
- standend();
- break;
- case 'r': /* Force a refresh on 'r' */
- wrefresh(curscr);
- break;
- default: /* By default output the character */
- addch(c);
- refresh();
- }
- }
-}
-
-
-int
-quit()
-{
- erase(); /* Terminate by erasing the screen */
- refresh();
- endwin(); /* Always end with endwin() */
- delwin(curscr); /* Return storage */
- delwin(stdscr);
- putchar('\n');
- exit(0);
-}
-
-
-
-
diff --git a/lib/libocurses/PSD.doc/ex2.c b/lib/libocurses/PSD.doc/ex2.c
deleted file mode 100644
index ee3a7d7e8ac..00000000000
--- a/lib/libocurses/PSD.doc/ex2.c
+++ /dev/null
@@ -1,206 +0,0 @@
-.\" Copyright (c) 1992, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)ex2.c 8.1 (Berkeley) 6/8/93
-.\"
-#include <curses.h>
-#include <stdio.h>
-#include <signal.h>
-
-#define YSIZE LINES
-#define XSIZE COLS
-
-static int quit();
-
-/*
- * This program fills the screen up with characters and the allows the user to
- * manipulate the text on the screen using some basic commands.
- * Nothing fancy, just a demonstration of the elementary features of the
- * curses(3) package.
- */
-main()
-{
- int i, j, c, n, d = 0;
- char id[100];
- int hh = 0;
- int curx, cury, base, arg;
-
- initscr();
- signal(SIGINT, quit);
- crmode();
- noecho();
- nonl();
- delwin(stdscr);
- stdscr = newwin(YSIZE, XSIZE, 0, 0);
- flushok(stdscr, TRUE);
- scrollok(stdscr, TRUE);
- erase();
- refresh();
-
- move(0,0);
- refresh();
- for (i = 0; i < YSIZE + 2; i++) {
- sprintf(id, "%d: ", i);
- addstr(id);
- for (j = 0; j < XSIZE - strlen(id); j++)
- addch('0' + (i % 10));
- }
- c = getchar();
- base = 2;
- curx = cury = 0;
- move(0, 0);
- refresh();
-
- /*
- * The screen manipulator has the following commands:
- * 'D' - clear to the end of the current line.
- * 'B' - clear to the bottom of the screen.
- * 'E' - erase the screen.
- * 's' - enter standout mode.
- * 'e' - exit standout mode.
- * 'd' n - delete n lines below cursor line.
- * 'i' n - insert n lines below cursor line.
- * 'q' - quit.
- * 'f' - move cursor one position to the right.
- * 'b' - move cursor one position to the left.
- * 'n' - move cursor one line down.
- * 'p' - move cursor one line up.
- * 'h' - home cusor.
- * 'l' - force refresh.
- * 'r' - simulate a carriage return.
- *
- * All other characters are ignored.
- */
- for(;;) {
- switch(c = getchar()) {
- case 'D':
- clrtoeol();
- refresh();
- continue;
- case 'B':
- clrtobot();
- refresh();
- continue;
- case 'E':
- erase();
- refresh();
- continue;
- case 's':
- standout();
- continue;
- case 'e':
- standend();
- continue;
- case 'd':
- arg = getchar() - '0';
- for (i = 0; i < arg; i++)
- deleteln();
- refresh();
- continue;
- case 'i':
- arg = getchar() - '0';
- for (i = 0; i < arg; i++)
- insertln();
- refresh();
- continue;
- case 'q':
- quit();
- case 'f':
- if (curx < XSIZE - 1)
- curx++;
- else {
- cury++;
- curx = 0;
- }
- break;
- case 'b':
- if (curx == 0) {
- cury--;
- curx = XSIZE - 1;
- } else
- curx--;
- break;
- case 'n':
- cury++;
- break;
- case 'p':
- cury--;
- break;
- case 'h':
- curx = cury = 0;
- break;
- case 'l':
- wrefresh(curscr);
- continue;
- case 'r': /* return */
- {
- int x, y;
- getyx(stdscr, y, x);
- move(y+1, 0);
- insertln();
- move(y, x);
- clrtoeol();
- refresh();
- continue;
- }
- default:
- continue;
- }
-
- if (cury < 0) {
- base--;
- move(0, 0);
- insertln();
- sprintf(id, "%d: ", base);
- addstr(id);
- for (j = 0; j < XSIZE - strlen(id) - 2; j++)
- addch('0' + (base % 10));
- cury++;
- } else if (cury >= YSIZE) {
- move(0, 0);
- deleteln();
- move(YSIZE - 1, 0);
- sprintf(id, "%d: ", base + YSIZE);
- addstr(id);
- for (j = 0; j < XSIZE - strlen(id) - 2; j++)
- addch('0' + ((base + YSIZE) % 10));
- cury--;
- base++;
- }
- move(cury, curx);
- refresh();
- }
-}
-
-int
-quit()
-{
- erase();
- refresh();
- endwin();
- exit(0);
-}
diff --git a/lib/libocurses/PSD.doc/fns.doc b/lib/libocurses/PSD.doc/fns.doc
deleted file mode 100644
index ce4ad0918ab..00000000000
--- a/lib/libocurses/PSD.doc/fns.doc
+++ /dev/null
@@ -1,795 +0,0 @@
-.\" Copyright (c) 1992, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)fns.doc 8.2 (Berkeley) 6/1/94
-.\"
-.Ds
-.Fn addch "char ch" \(dg
-.De
-Add the character
-.Vn ch
-on the window
-at the current \*y.
-If the character is a newline
-(\'\en\')
-the line will be cleared to the end,
-and the current \*y will be changed to the
-beginning off the next line
-if newline mapping is on,
-or to the next line at the same x co-ordinate
-if it is off.
-A return
-(\'\er\')
-will move to the beginning of the line on the window.
-Tabs
-(\'\et\')
-will be expanded into spaces
-in the normal tabstop positions of
-every eight characters.
-\*(Es
-.Ds
-.Fn addstr "char *str" \(dg
-.De
-Add the string pointed to by
-.Vn str
-on the window at the current \*y.
-\*(Es
-In this case, it will put on as much as it can.
-.Ds
-.Fn baudrate "" \(dg
-.De
-Returns the output baud rate of the terminal.
-This is a system dependent constant
-(defined in
-.b <sys/tty.h>
-on BSD systems,
-which is included by
-.b <curses.h> ).
-.Ds
-.Fn box "WINDOW win" "char vert" "char hor"
-.De
-.Pp
-Draws a box around the window using
-.Vn vert
-as the character for drawing the vertical sides, and
-.Vn hor
-for drawing the horizontal lines.
-If scrolling is not allowed,
-and the window encompasses the lower right-hand corner of the terminal,
-the corners are left blank to avoid a scroll.
-.Ds
-.Fn cbreak "" \(dg
-.De
-Set or the terminal to cbreak mode.
-.Ds
-.Fn clear "" \(dg
-.De
-Resets the entire window to blanks.
-If
-.Vn win
-is a screen,
-this sets the clear flag,
-which will cause a clear-screen sequence to be sent
-on the next
-.Fn refresh
-call.
-This also moves the current \*y
-to (0\*,0).
-.Ds
-.Fn clearok "WINDOW *scr" "int boolf" \(dg
-.De
-Sets the clear flag for the screen
-.Vn scr .
-If
-.Vn boolf
-is non-zero,
-this will force a clear-screen to be printed on the next
-.Fn refresh ,
-or stop it from doing so if
-.Vn boolf
-is 0.
-This only works on screens,
-and,
-unlike
-.Fn clear ,
-does not alter the contents of the screen.
-If
-.Vn scr
-is
-.Vn curscr ,
-the next
-.Fn refresh
-call will cause a clear-screen,
-even if the window passed to
-.Fn refresh
-is not a screen.
-.Ds
-.Fn clrtobot "" \(dg
-.De
-Wipes the window clear from the current \*y to the bottom.
-This does not force a clear-screen sequence on the next refresh
-under any circumstances.
-\*(Nm
-.Ds
-.Fn clrtoeol "" \(dg
-.De
-Wipes the window clear from the current \*y to the end of the line.
-\*(Nm
-.Ds
-.Fn crmode "" \(dg
-.De
-Identical to
-.Fn cbreak .
-The misnamed macro
-.Fn crmode
-and
-.Fn nocrmode
-is retained for backwards compatibility
-with ealier versions of the library.
-.Ds
-.Fn delch ""
-.De
-Delete the character at the current \*y.
-Each character after it on the line shifts to the left,
-and the last character becomes blank.
-.Ds
-.Fn deleteln ""
-.De
-Delete the current line.
-Every line below the current one will move up,
-and the bottom line will become blank.
-The current \*y will remain unchanged.
-.Ds
-.Fn delwin "WINDOW *win"
-.De
-Deletes the window from existence.
-All resources are freed for future use by
-.b calloc (3).
-If a window has a
-.Fn subwin
-allocated window inside of it,
-deleting the outer window
-the subwindow is not affected,
-even though this does invalidate it.
-Therefore,
-subwindows should be deleted before their
-outer windows are.
-.Ds
-.Fn echo "" \(dg
-.De
-Sets the terminal to echo characters.
-.Ds
-.Fn endwin ""
-.De
-Finish up window routines before exit.
-This restores the terminal to the state it was before
-.Fn initscr
-(or
-.Fn gettmode
-and
-.Fn setterm )
-was called.
-It should always be called before exiting and before the final calls to
-.Fn delwin .
-It does not exit.
-This is especially useful for resetting tty stats
-when trapping rubouts via
-.b signal (2).
-.Ds
-.Fn erase "" \(dg
-.De
-Erases the window to blanks without setting the clear flag.
-This is analagous to
-.Fn clear ,
-except that it never causes a clear-screen sequence to be generated
-on a
-.Fn refresh .
-\*(Nm
-.Ds
-.Fn erasechar "" \(dg
-.De
-Returns the erase character
-for the terminal,
-.i i.e. ,
-the character used by the user to erase a single character from the input.
-.Ds
-.Fn flushok "WINDOW *win" "int boolf"
-.De
-Normally,
-.Fn refresh
-.Fn fflush 's
-.Vn stdout
-when it is finished.
-.Fn flushok
-allows you to control this.
-if
-.Vn boolf
-is non-zero
-(\c
-.i i.e. ,
-non-zero)
-it will do the
-.Fn fflush ,
-otherwise it will not.
-.Ds
-.Fn getch "" \(dg
-.De
-Gets a character from the terminal and (if necessary)
-echos it on the window.
-\*(Es
-Otherwise, the character gotten is returned.
-If
-.i noecho
-has been set, then the window is left unaltered.
-In order to retain control of the terminal,
-it is necessary to have one of
-.i noecho ,
-.i cbreak ,
-or
-.i rawmode
-set.
-If you do not set one,
-whatever routine you call to read characters will set
-.i cbreak
-for you,
-and then reset to the original mode when finished.
-.Ds
-.Fn getstr "char *str" \(dg
-.De
-Get a string through the window
-and put it in the location pointed to by
-.Vn str ,
-which is assumed to be large enough to handle it.
-It sets tty modes if necessary,
-and then calls
-.Fn getch
-(or
-.Fn wgetch )
-to get the characters needed to fill in the string
-until a newline or EOF is encountered.
-The newline stripped off the string.
-\*(Es
-.Ds
-.Fn gettmode ""
-.De
-Get the tty stats.
-This is normally called by
-.Fn initscr .
-.Ds
-.Fn getyx "WINDOW *win" "int y" "int x"
-.De
-Puts the current \*y of
-.Vn win
-in the variables
-.Vn y
-and
-.Vn x .
-Since it is a macro,
-not a function,
-you do not pass the address
-of
-.Vn y
-and
-.Vn x .
-.Ds
-.Fn idlok "WINDOW *win" "int boolf"
-.De
-Reserved for future use.
-This will eventually signal to
-.Fn refresh
-that it is all right to use the insert and delete line sequences
-when updating the window.
-.ne 1i
-.Ds
-.Fn inch "" \(dg
-.De
-Returns the character at the current position on the given window.
-This does not make any changes to the window.
-.Ds
-.Fn initscr ""
-.De
-Initialize the screen routines.
-This must be called before any of the screen routines are used.
-It initializes the terminal-type data and such,
-and without it none of the routines can operate.
-If standard input is not a tty,
-it sets the specifications to the terminal
-whose name is pointed to by
-.Vn Def\*_term
-(initially "dumb").
-If the boolean
-.Vn My\*_term
-is non-zero,
-.Vn Def\*_term
-is always used.
-If the system supports the
-.b TIOCGWINSZ
-.i ioctl(2)
-call,
-it is used to get the number of lines and columns for the terminal,
-otherwise it is taken from the
-.b termcap
-description.
-.Ds
-.Fn insch "char c"
-.De
-Insert
-.Vn c
-at the current \*y
-Each character after it shifts to the right,
-and the last character disappears.
-\*(Es
-.Ds
-.Fn insertln ""
-.De
-Insert a line above the current one.
-Every line below the current line
-will be shifted down,
-and the bottom line will disappear.
-The current line will become blank,
-and the current \*y will remain unchanged.
-.Ds
-.Fn killchar "" \(dg
-.De
-Returns the line kill character
-for the terminal,
-.i i.e. ,
-the character used by the user to erase an entire line from the input.
-.Ds
-.Fn leaveok "WINDOW *win" "int boolf" \(dg
-.De
-Sets the boolean flag for leaving the cursor after the last change.
-If
-.Vn boolf
-is non-zero,
-the cursor will be left after the last update on the terminal,
-and the current \*y for
-.Vn win
-will be changed accordingly.
-If
-.Vn boolf
- is 0 the cursor will be moved to the current \*y.
-This flag
-(initially 0)
-retains its value until changed by the user.
-.Ds
-.Fn move "int y" "int x"
-.De
-Change the current \*y of the window to
-.Vn y\*,x ). (
-\*(Es
-.Ds
-.Fn mvcur "int lasty" "int lastx" "int newy" "int newx"
-.De
-Moves the terminal's cursor from
-.Vn lasty\*,lastx ) (
-to
-.Vn newy\*,newx ) (
-in an approximation of optimal fashion.
-This routine uses the functions borrowed from
-.i ex
-version 2.6.
-It is possible to use this optimization
-without the benefit of the screen routines.
-With the screen routines, this should not be called by the user.
-.Fn move
-and
-.Fn refresh
-should be used to move the cursor position,
-so that the routines know what's going on.
-.Ds
-.Fn mvprintw "int y" "int x" "const char *fmt" "..."
-.De
-Equivalent to:
-.(l
-move(y, x);
-printw(fmt, ...);
-.)l
-.Ds
-.Fn mvscanw "int y" "int x" "const char *fmt" "..."
-.De
-Equivalent to:
-.(l
-move(y, x);
-scanw(fmt, ...);
-.)l
-.Ds
-.Fn mvwin "WINDOW *win" "int y" "int x"
-.De
-Move the home position of the window
-.Vn win
-from its current starting coordinates
-to
-.Vn y\*,x ). (
-If that would put part or all of the window
-off the edge of the terminal screen,
-.Fn mvwin
-returns ERR and does not change anything.
-For subwindows,
-.Fn mvwin
-also returns ERR if you attempt to move it off its main window.
-If you move a main window,
-all subwindows are moved along with it.
-.Ds
-.Fn mvwprintw "WINDOW *win" "int y" "int x" "const char *fmt" "..."
-.De
-Equivalent to:
-.(l
-wmove(win, y, x);
-printw(fmt, ...);
-.)l
-.Ds
-.Fn mvwscanw "WINDOW *win" "int y" "int x" "const char *fmt" "..."
-.De
-Equivalent to:
-.(l
-wmove(win, y, x);
-scanw(fmt, ...);
-.)l
-.Ds
-.Ft "WINDOW *"
-.Fn newwin "int lines" "int cols" "int begin_y" "int begin_x"
-.De
-Create a new window with
-.Vn lines
-lines and
-.Vn cols
-columns starting at position
-.Vn begin\*_y\*,begin\*_x ). (
-If either
-.Vn lines
-or
-.Vn cols
-is 0 (zero),
-that dimension will be set to
-.Vn "LINES \- begin\*_y" ) (
-or
-.Vn "COLS \- begin\*_x" ) (
-respectively.
-Thus, to get a new window of dimensions
-.Vn LINES
-\(mu
-.Vn COLS ,
-use
-.Fn newwin 0 0 0 0 .
-.Ds
-.Fn nl "" \(dg
-.De
-Set the terminal to nl mode,
-.i i.e. ,
-start/stop the system from mapping
-.b <RETURN>
-to
-.b <LINE-FEED> .
-If the mapping is not done,
-.Fn refresh
-can do more optimization,
-so it is recommended, but not required, to turn it off.
-.Ds
-.Fn nocbreak "" \(dg
-.De
-Unset the terminal from cbreak mode.
-.Ds
-.Fn nocrmode "" \(dg
-.De
-Identical to
-.Fn nocbreak .
-The misnamed macro
-.Fn nocrmode
-is retained for backwards compatibility
-with ealier versions of the library.
-.Ds
-.Fn noecho "" \(dg
-.De
-Turn echoing of characters off.
-.Ds
-.Fn nonl "" \(dg
-.De
-Unset the terminal to from nl mode. See
-.Fn nl .
-.ne 1i
-.Ds
-.Fn noraw "" \(dg
-.De
-Unset the terminal from raw mode. See
-.Fn raw .
-.Ds
-.Fn overlay "WINDOW *win1" "WINDOW *win2"
-.De
-Overlay
-.Vn win1
-on
-.Vn win2 .
-The contents of
-.Vn win1 ,
-insofar as they fit,
-are placed on
-.Vn win2
-at their starting \*y.
-This is done non-destructively,
-i.e., blanks on
-.Vn win1
-leave the contents of the space on
-.Vn win2
-untouched. Note that all non-blank characters are overwritten
-destructively in the overlay.
-.Ds
-.Fn overwrite "WINDOW *win1" "WINDOW *win2"
-.De
-Overwrite
-.Vn win1
-on
-.Vn win2 .
-The contents of
-.Vn win1 ,
-insofar as they fit,
-are placed on
-.Vn win2
-at their starting \*y.
-This is done destructively,
-.i i.e. ,
-blanks on
-.Vn win1
-become blank on
-.Vn win2 .
-.Ds
-.Fn printw "char *fmt" "..."
-.De
-Performs a
-.Fn printf
-on the window starting at the current \*y.
-It uses
-.Fn addstr
-to add the string on the window.
-It is often advisable to use the field width options of
-.Fn printf
-to avoid leaving things on the window from earlier calls.
-\*(Es
-.Ds
-.Fn raw "" \(dg
-.De
-Set the terminal to raw mode.
-On version 7
-.Un \**
-.(f
-\**
-.Un
-is a trademark of Unix System Laboratories.
-.)f
-this also turns off newline mapping
-(see
-.Fn nl ).
-.Ds
-.Fn refresh "" \(dg
-.De
-Synchronize the terminal screen with the desired window.
-If the window is not a screen,
-only that part covered by it is updated.
-\*(Es
-In this case, it will update whatever it can
-without causing the scroll.
-.sp
-As a special case,
-if
-.Fn wrefresh
-is called with the window
-.Vn curscr
-the screen is cleared
-and repainted as it is currently.
-This is very useful for allowing the redrawing of the screen
-when the user has garbage dumped on his terminal.
-.Ds
-.Fn resetty "" \(dg
-.De
-.Fn resetty
-restores them to what
-.Fn savetty
-stored.
-These functions are performed automatically by
-.Fn initscr
-and
-.Fn endwin .
-This function should not be used by the user.
-.Ds
-.Fn savetty "" \(dg
-.De
-.Fn savetty
-saves the current tty characteristic flags. See
-.Fn resetty .
-This function should not be used by the user.
-.Ds
-.Fn scanw "char *fmt" "..."
-.De
-Perform a
-.Fn scanf
-through the window using
-.Vn fmt .
-It does this using consecutive calls to
-.Fn getch
-(or
-.Fn wgetch ).
-\*(Es
-.ne 1i
-.Ds
-.Fn scroll "WINDOW *win"
-.De
-Scroll the window upward one line.
-This is normally not used by the user.
-.Ds
-.Fn scrollok "WINDOW *win" "int boolf" \(dg
-.De
-Set the scroll flag for the given window.
-If
-.Vn boolf
-is 0, scrolling is not allowed.
-This is its default setting.
-.Ds
-.Fn standend "" \(dg
-.De
-End standout mode initiated by
-.Fn standout .
-.Ds
-.Fn standout "" \(dg
-.De
-Causes any characters added to the window
-to be put in standout mode on the terminal
-(if it has that capability).
-.Ds
-.Ft "WINDOW *"
-.Fn subwin "WINDOW *win" "int lines" "int cols" "int begin_y" "int begin_x"
-.De
-Create a new window with
-.Vn lines
-lines and
-.Vn cols
-columns starting at position
-.Vn begin\*_y\*,begin\*_x ) (
-inside the window
-.i win .
-This means that any change made to either window
-in the area covered
-by the subwindow will be made on both windows.
-.Vn begin\*_y\*,begin\*_x
-are specified relative to the overall screen,
-not the relative (0\*,0) of
-.Vn win .
-If either
-.Vn lines
-or
-.Vn cols
-is 0 (zero),
-that dimension will be set to
-.Vn "LINES \- begin\*_y" ) (
-or
-.Vn "COLS \- begin\*_x" ) (
-respectively.
-.Ds
-.Fn touchline "WINDOW *win" "int y" "int startx" "int endx"
-.De
-This function performs a function similar to
-.Fn touchwin
-on a single line.
-It marks the first change for the given line
-to be
-.Vn startx ,
-if it is before the current first change mark,
-and
-the last change mark is set to be
-.Vn endx
-if it is currently less than
-.Vn endx .
-.Ds
-.Fn touchoverlap "WINDOW *win1" "WINDOW *win2"
-.De
-Touch the window
-.Vn win2
-in the area which overlaps with
-.Vn win1 .
-If they do not overlap,
-no changes are made.
-.Ds
-.Fn touchwin "WINDOW *win"
-.De
-Make it appear that the every location on the window
-has been changed.
-This is usually only needed for refreshes with overlapping windows.
-.Ds
-.Fn tstp
-.De
-This function
-will save the current tty state
-and then put the process to sleep.
-When the process gets restarted,
-it restores the saved tty state
-and then calls
-.Fn wrefresh "curscr"
-to redraw the screen.
-.Fn Initscr
-sets the signal
-SIGTSTP
-to trap to this routine.
-.Ds
-.Fn unctrl "char *ch" \(dg
-.De
-Returns a string which is an ASCII representation of
-.Vn ch .
-Characters are 8 bits long.
-.Ds
-.Fn unctrllen "char *ch" \(dg
-.De
-Returns the length of the ASCII representation of
-.Vn ch .
-.ne 1i
-.Ds
-.Fn vwprintw "WINDOW *win" "const char *fmt" "va_list ap"
-.De
-Identical to
-.Fn printw
-except that it takes both a window specification and a pointer to a variable
-length argument list.
-.Ds
-.Fn vwscanw "WINDOW *win" "const char *fmt" "va_list ap"
-.De
-Identical to
-.Fn scanw
-except that it takes both a window specification and a pointer to a variable
-length argument list.
-.Ds
-.Fn waddbytes "WINDOW *win" "char *str" "int len"
-.De
-This function is the low level character output function.
-.Vn Len
-characters of the string
-.Vn str
-are output to the current \*y position of the window specified by
-.Vn win.
-.sp 2
-.pp
-\fIThe following functions differ from the standard functions only in their
-specification of a window, rather than the use of the default
-.Vn stdscr.\fP
-.Ds
-.Fn waddch "WINDOW *win" "char ch"
-.Fn waddstr "WINDOW *win" "char *str"
-.Fn wclear "WINDOW *win"
-.Fn wclrtobot "WINDOW *win"
-.Fn wclrtoeol "WINDOW *win"
-.Fn wdelch "WINDOW *win"
-.Fn wdeleteln "WINDOW *win"
-.Fn werase "WINDOW *win"
-.Fn wgetch "WINDOW *win"
-.Fn wgetstr "WINDOW *win" "char *str"
-.Fn winch "WINDOW *win" \(dg
-.Fn winsch "WINDOW *win" "char c"
-.Fn winsertln "WINDOW *win"
-.Fn wmove "WINDOW *win" "int y" int x"
-.Fn wprintw "WINDOW *win" "char *fmt" "..."
-.Fn wrefresh "WINDOW *win"
-.Fn wscanw "WINDOW *win" "char *fmt" "..."
-.Fn wstandend "WINDOW *win"
-.Fn wstandout "WINDOW *win"
-.Dg
diff --git a/lib/libocurses/PSD.doc/intro.0 b/lib/libocurses/PSD.doc/intro.0
deleted file mode 100644
index 23fca58b18c..00000000000
--- a/lib/libocurses/PSD.doc/intro.0
+++ /dev/null
@@ -1,102 +0,0 @@
-.\" Copyright (c) 1980, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)intro.0 8.1 (Berkeley) 6/4/93
-.\"
-.tp
-.(l C
-.ps 12
-.ft B
-Screen Updating and Cursor Movement Optimization:
-.fl
-A Library Package
-.ft
-.ps
-.sp
-.i "Kenneth C. R. C. Arnold"
-.i "Elan Amir"
-.sp
-Computer Science Division
-Department of Electrical Engineering and Computer Science
-University of California, Berkeley
-Berkeley, California 94720
-.sp 3
-.bi ABSTRACT
-.sp 2
-.)l
-.(q
-.pp
-This document describes a package of C library functions
-which allow the user to:
-.ie t .ip \ \ \ \(bu
-.el .ip 1)
-update a screen with reasonable optimization,
-.ie t .ip \ \ \ \(bu
-.el .ip 2)
-get input from the terminal
-in a screen-oriented fashion,
-and
-.ie t .ip \ \ \ \(bu
-.el .ip 3)
-independent from the above, move the cursor optimally
-from one point to another.
-.pp
-These routines all use the
-\*(tc \*(db to describe the capabilities of the terminal.
-.)q
-.b Acknowledgements
-.pp
-This package would not exist
-without the work of Bill Joy,
-who,
-in writing his editor,
-created the capability to generally describe terminals,
-wrote the routines which read this \*(db,
-and, most importantly,
-those which implement optimal cursor movement,
-which routines I have simply lifted nearly intact.
-Doug Merritt and Kurt Shoens also were extremely important,
-as were both willing to waste time listening to me rant and rave.
-The help and/or support of
-Ken Abrams,
-Alan Char,
-Mark Horton,
-and
-Joe Kalash,
-was, and is,
-also greatly appreciated.
-.i "Ken Arnold 16 April 1986"
-.pp
-The help and/or support of Kirk McKusick and Keith Bostic (public vi!)
-was invaluable in bringing the package ``into the 90's'', which now
-includes completely new data structures and screen refresh optimization
-routines.
-.i "Elan Amir 29 December 1992"
-
-
-
-
diff --git a/lib/libocurses/PSD.doc/intro.1 b/lib/libocurses/PSD.doc/intro.1
deleted file mode 100644
index 56a8365055d..00000000000
--- a/lib/libocurses/PSD.doc/intro.1
+++ /dev/null
@@ -1,245 +0,0 @@
-.\" Copyright (c) 1980, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)intro.1 8.1 (Berkeley) 6/4/93
-.\"
-.bp
-.sh 1 Overview
-.pp
-In making available the generalized terminal descriptions in \*(tc,
-much information was made available to the programmer,
-but little work was taken out of one's hands.
-The purpose of this package is to allow the C programmer
-to do the most common type of terminal dependent functions,
-those of movement optimization and optimal screen updating,
-without doing any of the dirty work,
-and with nearly as much ease as is necessary to simply print
-or read things.
-.sh 2 "Terminology"
-.pp
-In this document, the following terminology is used:
-.de Ip
-.sp
-.in 5n
-.ti 0n
-.b "\\$1" :
-..
-.Ip window
-An internal representation
-containing an image of what a section of the terminal screen may look like
-at some point in time.
-This subsection can either encompass the entire terminal screen,
-or any smaller portion down to a single character within that screen.
-.Ip terminal
-Sometimes called
-.b terminal
-.b screen .
-The package's idea of what the terminal's screen currently looks like,
-.i i.e. ,
-what the user sees now.
-This is a special
-.i screen :
-.Ip screen
-This is a subset of windows which are as large as the terminal screen,
-.i i.e. ,
-they start at the upper left hand corner
-and encompass the lower right hand corner.
-One of these,
-.Vn stdscr ,
-is automatically provided for the programmer.
-.rm Ip
-.sh 2 "Compiling Applications"
-.pp
-In order to use the library,
-it is necessary to have certain types and variables defined.
-Therefore, the programmer must have a line:
-.(l
-.b "#include <curses.h>"
-.)l
-at the top of the program source.
-Compilations should have the following form:
-.(l
-.ie t \fBcc\fR [ \fIflags\fR ] file ... \fB\-lcurses \-ltermcap\fR
-.el \fIcc\fR [ flags ] file ... \fI\-lcurses \-ltermcap\fR
-.)l
-.sh 2 "Screen Updating"
-.pp
-In order to update the screen optimally,
-it is necessary for the routines to know what the screen currently looks like
-and what the programmer wants it to look like next.
-For this purpose,
-a data type
-(structure)
-named
-.Vn WINDOW
-is defined
-which describes a window image to the routines,
-including its starting position on the screen
-(the \*y of the upper left hand corner)
-and its size.
-One of these
-(called
-.Vn curscr
-for
-.i "current screen" )
-is a screen image of what the terminal currently looks like.
-Another screen
-(called
-.Vn stdscr ,
-for
-.i "standard screen" )
-is provided
-by default
-to make changes on.
-.pp
-A window is a purely internal representation.
-It is used to build and store
-a potential image of a portion of the terminal.
-It doesn't bear any necessary relation
-to what is really on the terminal screen.
-It is more like an array of characters on which to make changes.
-.pp
-When one has a window which describes
-what some part the terminal should look like,
-the routine
-.Fn refresh
-(or
-.Fn wrefresh
-if the window is not
-.Vn stdscr )
-is called.
-.Fn Refresh
-makes the terminal,
-in the area covered by the window,
-look like that window.
-Note, therefore, that changing something on a window
-.i does
-.bi not
-.i "change the terminal" .
-Actual updates to the terminal screen
-are made only by calling
-.Fn refresh
-or
-.Fn wrefresh .
-This allows the programmer to maintain several different ideas
-of what a portion of the terminal screen should look like.
-Also, changes can be made to windows in any order,
-without regard to motion efficiency.
-Then, at will,
-the programmer can effectively say
-.q "make it look like this" ,
-and the package will execute the changes in an optimal way.
-.sh 2 "Naming Conventions"
-.pp
-As hinted above,
-the routines can use several windows,
-but two are always available:
-.Vn curscr ,
-which is the image of what the terminal looks like at present,
-and
-.Vn stdscr ,
-which is the image of what the programmer wants the terminal to look like next.
-The user should not access
-.Vn curscr
-directly.
-Changes should be made to
-the appropriate screen,
-and then the routine
-.Fn refresh
-(or
-.Fn wrefresh )
-should be called.
-.pp
-Many functions are set up to deal with
-.Vn stdscr
-as a default screen.
-For example, to add a character to
-.Vn stdscr ,
-one calls
-.Fn addch
-with the desired character.
-If a different window is to be used,
-the routine
-.Fn waddch
-(for
-.b w indow-specific
-.Fn addch )
-is provided\**.
-.(f
-\**
-Actually,
-.Fn addch
-is really a
-.q #define
-macro with arguments,
-as are most of the "functions" which act upon
-.Vn stdscr .
-.)f
-This convention of prepending function names with a
-.Bq w
-when they are to be applied to specific windows
-is consistent.
-The only routines which do
-.i not
-do this are those
-to which a window must always be specified.
-.pp
-In order to move the current \*y from one point to another,
-the routines
-.Fn move
-and
-.Fn wmove
-are provided.
-However,
-it is often desirable to first move and then perform some I/O operation.
-In order to avoid clumsiness,
-most I/O routines can be preceded by the prefix
-.Bq mv
-and the desired \*y can then be added to the arguments to the function.
-For example,
-the calls
-.(l
-move(y\*,x);
-addch(ch);
-.)l
-can be replaced by
-.(l
-mvaddch(y\*,x\*,ch);
-.)l
-and
-.(l
-wmove(win\*,y\*,x);
-waddch(win\*,ch);
-.)l
-can be replaced by
-.(l
-mvwaddch(win\*,y\*,x\*,ch);
-.)l
-Note that the window description pointer
-.Vn win ) (
-comes before the added \*y.
-If a window pointer is needed, it is always the first parameter passed.
diff --git a/lib/libocurses/PSD.doc/intro.2 b/lib/libocurses/PSD.doc/intro.2
deleted file mode 100644
index 28db81d2e36..00000000000
--- a/lib/libocurses/PSD.doc/intro.2
+++ /dev/null
@@ -1,73 +0,0 @@
-.\" Copyright (c) 1980, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)intro.2 8.1 (Berkeley) 6/4/93
-.\"
-.sh 1 Variables
-.pp
-Many variables which are used to describe the terminal environment
-are available to the programmer. They are:
-.(b
-.TS
-expand;
-lw(6m) lw(8n) lw(50n).
-type name description
-_
-WINDOW * curscr T{
-.fi
-current version of the screen (terminal screen).
-T}
-WINDOW * stdscr T{
-standard screen. Most updates are usually done here.
-T}
-char * Def\*_term T{
-default terminal type if type cannot be determined
-T}
-bool My\*_term T{
-use the terminal specification in \fIDef\*_term\fR as terminal,
-irrelevant of real terminal type
-T}
-char * ttytype T{
-full name of the current terminal.
-T}
-int LINES T{
-number of lines on the terminal
-T}
-int COLS T{
-number of columns on the terminal
-T}
-int ERR T{
-error flag returned by routines on a fail.
-T}
-int OK T{
-flag returned by routines upon success.
-T}
-.TE
-.fi
-.ev
-.)b
-.lp
diff --git a/lib/libocurses/PSD.doc/intro.3 b/lib/libocurses/PSD.doc/intro.3
deleted file mode 100644
index fa886bab1ab..00000000000
--- a/lib/libocurses/PSD.doc/intro.3
+++ /dev/null
@@ -1,224 +0,0 @@
-.\" Copyright (c) 1980, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)intro.3 8.1 (Berkeley) 6/4/93
-.\"
-.sh 1 Usage
-.pp
-This is a description of how to actually use the screen package.
-For simplicity, we assume all updating, reading, etc.
-is applied to
-.Vn stdscr ,
-although a different window can of course be specified.
-.sh 2 "Initialization"
-.pp
-In order to use the screen package,
-the routines must know about terminal characteristics,
-and the space for
-.Vn curscr
-and
-.Vn stdscr
-must be allocated.
-These functions are performed by
-.Fn initscr .
-Since it must allocate space for the windows,
-it can overflow core when attempting to do so.
-On this rather rare occasion,
-.Fn initscr
-returns ERR.
-.Fn initscr
-must
-.bi always
-be called before any of the routines which affect windows are used.
-If it is not,
-the program will core dump as soon as either
-.Vn curscr
-or
-.Vn stdscr
-are referenced.
-However, it is usually best to wait to call it
-until after you are sure you will need it,
-like after checking for startup errors.
-Terminal status changing routines
-like
-.Fn nl
-and
-.Fn cbreak
-should be called after
-.Fn initscr .
-.pp
-After the initial window allocation done by
-.Fn initscr ,
-specific window characteristics can be set.
-Scrolling can be enabled by calling
-.Fn scrollok .
-If you want the cursor to be left after the last change, use
-.Fn leaveok .
-If this isn't done,
-.Fn refresh
-will move the cursor to the window's current \*y after updating it.
-Additional windows can be created by using the functions
-.Fn newwin
-and
-.Fn subwin .
-.Fn delwin
-allows you to delete an existing window.
-The variables
-.Vn LINES
-and
-.Vn COLS
-control the size of the terminal. They are initially implicitly set by
-.Fn initscr ,
-but can be altered explicitly by the user followed by a call to
-.Fn initscr .
-Note that any call to
-.Fn initscr ,
-will always delete any existing
-.Vn stdscr
-and/or
-.Vn curscr
-before creating new ones so this change is best done before the initial call to
-.Fn initscr .
-.pp
-.sh 2 "Output"
-.pp
-The basic functions
-used to change what will go on a window are
-.Fn addch
-and
-.Fn move .
-.Fn addch
-adds a character at the current \*y,
-returning ERR if it would cause the window to illegally scroll,
-.i i.e. ,
-printing a character in the lower right-hand corner
-of a terminal which automatically scrolls
-if scrolling is not allowed.
-.Fn move
-changes the current \*y to whatever you want them to be.
-It returns ERR if you try to move off the window.
-As mentioned above, you can combine the two into
-.Fn mvaddch
-to do both things in one call.
-.pp
-The other output functions
-(such as
-.Fn addstr
-and
-.Fn printw )
-all call
-.Fn addch
-to add characters to the window.
-.pp
-After a change has been made to the window,
-you must call
-.Fn refresh .
-when you want the portion of the terminal covered by the window
-to reflect the change.
-In order to optimize finding changes,
-.Fn refresh
-assumes that any part of the window not changed
-since the last
-.Fn refresh
-of that window has not been changed on the terminal,
-.i i.e. ,
-that you have not refreshed a portion of the terminal
-with an overlapping window.
-If this is not the case,
-the routines
-.Fn touchwin ,
-.Fn touchline ,
-and
-.Fn touchoverlap
-are provided to make it look like a desired part of window has been changed,
-thus forcing
-.Fn refresh
-to check that whole subsection of the terminal for changes.
-.pp
-If you call
-.Fn wrefresh
-with
-.Vn curscr ,
-it will make the screen look like the image of
-.Vn curscr .
-This is useful for implementing a command
-which would redraw the screen in case it got messed up.
-.sh 2 Input
-.pp
-Input is essentially a mirror image of output.
-The complementary function to
-.Fn addch
-is
-.Fn getch
-which,
-if echo is set,
-will call
-.Fn addch
-to echo the character.
-Since the screen package needs to know what is on the terminal at all times,
-if characters are to be echoed,
-the tty must be in raw or cbreak mode.
-If it is not,
-.Fn getch
-sets it to be cbreak,
-and then reads in the character.
-.sh 2 "Termination"
-.pp
-In order to perform certain optimizations,
-and,
-on some terminals,
-to work at all,
-some things must be done
-before the screen routines start up.
-These functions are performed in
-.Fn getttmode
-and
-.Fn setterm ,
-which are called by
-.Fn initscr .
-In order to clean up after the routines,
-the routine
-.Fn endwin
-is provided.
-It restores tty modes to what they were
-when
-.Fn initscr
-was first called.
-The terminal state module uses the variable
-.Vn curses_termios
-to save the original terminal state which is then restored upon a call to
-.Fn endwin .
-Thus,
-anytime after the call to initscr,
-.Fn endwin
-should be called before exiting. Note however, that
-.Fn endwin
-should always be called
-.b before
-the final calls to
-.Fn delwin ,
-which free the storage of the windows.
diff --git a/lib/libocurses/PSD.doc/intro.4 b/lib/libocurses/PSD.doc/intro.4
deleted file mode 100644
index 216ab63e8d9..00000000000
--- a/lib/libocurses/PSD.doc/intro.4
+++ /dev/null
@@ -1,65 +0,0 @@
-.\" Copyright (c) 1980, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)intro.4 8.1 (Berkeley) 6/4/93
-.\"
-.sh 1 "Cursor Movement Optimizations"
-.pp
-One of the most difficult things to do properly is motion optimization.
-After using
-.Fn gettmode
-and
-.Fn setterm
-to get the terminal descriptions,
-the function
-.Fn mvcur
-deals with this task.
-It usage is simple:
-simply tell it where you are now and where you want to go.
-For example
-.(l
-mvcur(0\*,0\*,LINES/2\*,COLS/2);
-.)l
-.lp
-would move the cursor from the home position (0\*,0)
-to the middle of the screen.
-If you wish to force absolute addressing,
-you can use the function
-.Fn tgoto
-from the
-.b termlib (7)
-routines,
-or you can tell
-.Fn mvcur
-that you are impossibly far away,
-For example,
-to absolutely address the lower left hand corner of the screen
-from anywhere
-just claim that you are in the upper right hand corner:
-.(l
-mvcur(0\*,COLS\-1\*,LINES\-1\*,0);
-.)l
diff --git a/lib/libocurses/PSD.doc/intro.5 b/lib/libocurses/PSD.doc/intro.5
deleted file mode 100644
index 56617b45e22..00000000000
--- a/lib/libocurses/PSD.doc/intro.5
+++ /dev/null
@@ -1,84 +0,0 @@
-.\" Copyright (c) 1980, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)intro.5 8.1 (Berkeley) 6/4/93
-.\"
-.sh 1 "Character Output and Scrolling"
-.pp
-The character output policy deals with the following problems. First,
-where is the location of the cursor after a character is printed, and
-secondly, when does the screen scroll if scrolling is enabled.
-.pp
-In the normal case the characters are output as expected, with the cursor
-occupying the position of the next character to be output. However, when the
-cursor is on the last column of the line, the cursor will remain on that
-position after the last character on the line is output and will only assume
-the position on the next line when the next character (the first on the next
-line) is output.
-.pp
-Likewise, if scrolling is enabled, a scroll will be invoked only when the
-first character on he first line past the bottom line of the window is
-output. If scrolling is not enabled the characters will be output to the
-bottom right corner of the window which is the cursor location.
-.pp
-This policy allows consistent behavior of the cursor at the boundary
-conditions. Furthermore, it prevents a scroll from happening before it is
-actually needed (the old package used to scroll when a character was
-written to the right-most position on the last line). As a precedent, it
-models the
-.i xterm
-character output conventions.
-.sh 1 "Terminal State Handling"
-.pp
-The variable
-.Vn curses_termios
-contains the terminal state of the terminal. Certain historical routines
-return information:
-.Fn baudrate ,
-.Fn erasechar ,
-.Fn killchar ,
-and
-.Fn ospeed .
-These routines are obsolete and exist only for backward compatibility. If
-you wish to use the information in the
-.Vn curses_termios
-structure, you should use the
-\fItsetattr\fP(3)
-routines.
-.sh 1 "Subwindows"
-.pp
-Subwindows are windows which do not have an independent text structure,
-.i i.e. ,
-they are windows whose text is a subset of the text of a larger window: the
-.i parent
-window. One consequence of this is that changes to either the parent or the
-child window are destructive to the other,
-.i i.e. ,
-a change to the subwindow is also a change to the parent window and a change
-to the parent window in the region defined by the subwindow is implicitly a
-change to the subwindow as well.
-Apart from this detail, subwindows function like any other window.
diff --git a/lib/libocurses/PSD.doc/intro.6 b/lib/libocurses/PSD.doc/intro.6
deleted file mode 100644
index a3eae8aa3b1..00000000000
--- a/lib/libocurses/PSD.doc/intro.6
+++ /dev/null
@@ -1,40 +0,0 @@
-.\" Copyright (c) 1980, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)intro.6 8.1 (Berkeley) 6/4/93
-.\"
-.sh 1 "The Functions"
-.pp
-In the following definitions,
-.q \*m
-means that the
-.q function
-is really a
-.q #define
-macro with arguments.
-.ta 11m 17m 25m 33m 41m 49m 57m 65m 73m
-.so fns.doc
diff --git a/lib/libocurses/PSD.doc/life.c b/lib/libocurses/PSD.doc/life.c
deleted file mode 100644
index 33818626e7c..00000000000
--- a/lib/libocurses/PSD.doc/life.c
+++ /dev/null
@@ -1,159 +0,0 @@
-.\" Copyright (c) 1980, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)life.c 8.1 (Berkeley) 6/8/93
-.\"
-# include <curses.h>
-# include <signal.h>
-
-/*
- * Run a life game. This is a demonstration program for
- * the Screen Updating section of the -lcurses cursor package.
- */
-
-typedef struct lst_st { /* linked list element */
- int y, x; /* (y, x) position of piece */
- struct lst_st *next, *last; /* doubly linked */
-} LIST;
-
-LIST *Head; /* head of linked list */
-
-int die();
-
-main(ac, av)
-int ac;
-char *av[];
-{
- evalargs(ac, av); /* evaluate arguments */
-
- initscr(); /* initialize screen package */
- signal(SIGINT, die); /* set to restore tty stats */
- cbreak(); /* set for char-by-char */
- noecho(); /* input */
- nonl(); /* for optimization */
-
- getstart(); /* get starting position */
- for (;;) {
- prboard(); /* print out current board */
- update(); /* update board position */
- }
-}
-
-/*
- * This is the routine which is called when rubout is hit.
- * It resets the tty stats to their original values. This
- * is the normal way of leaving the program.
- */
-die()
-{
- signal(SIGINT, SIG_IGN); /* ignore rubouts */
- mvcur(0, COLS - 1, LINES - 1, 0); /* go to bottom of screen */
- endwin(); /* set terminal to good state */
- exit(0);
-}
-
-/*
- * Get the starting position from the user. They keys u, i, o, j, l,
- * m, ,, and . are used for moving their relative directions from the
- * k key. Thus, u move diagonally up to the left, , moves directly down,
- * etc. x places a piece at the current position, " " takes it away.
- * The input can also be from a file. The list is built after the
- * board setup is ready.
- */
-getstart()
-{
- reg char c;
- reg int x, y;
- auto char buf[100];
-
- box(stdscr, '|', '_'); /* box in the screen */
- move(1, 1); /* move to upper left corner */
-
- for (;;) {
- refresh(); /* print current position */
- if ((c = getch()) == 'q')
- break;
- switch (c) {
- case 'u':
- case 'i':
- case 'o':
- case 'j':
- case 'l':
- case 'm':
- case ',':
- case '.':
- adjustyx(c);
- break;
- case 'f':
- mvaddstr(0, 0, "File name: ");
- getstr(buf);
- readfile(buf);
- break;
- case 'x':
- addch('X');
- break;
- case ' ':
- addch(' ');
- break;
- }
- }
-
- if (Head != NULL) /* start new list */
- dellist(Head);
- Head = malloc(sizeof (LIST));
-
- /*
- * loop through the screen looking for 'x's, and add a list
- * element for each one
- */
- for (y = 1; y < LINES - 1; y++)
- for (x = 1; x < COLS - 1; x++) {
- move(y, x);
- if (inch() == 'x')
- addlist(y, x);
- }
-}
-
-/*
- * Print out the current board position from the linked list
- */
-prboard() {
-
- reg LIST *hp;
-
- erase(); /* clear out last position */
- box(stdscr, '|', '_'); /* box in the screen */
-
- /*
- * go through the list adding each piece to the newly
- * blank board
- */
- for (hp = Head; hp; hp = hp->next)
- mvaddch(hp->y, hp->x, 'X');
-
- refresh();
-}
diff --git a/lib/libocurses/PSD.doc/macros b/lib/libocurses/PSD.doc/macros
deleted file mode 100644
index bbfbc0b22b4..00000000000
--- a/lib/libocurses/PSD.doc/macros
+++ /dev/null
@@ -1,140 +0,0 @@
-.\" Copyright (c) 1980, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)macros 8.1 (Berkeley) 8/14/93
-.\"
-.\" this is the uncommented version. The commented one is in "macros.coms"
-.ie t .ds _ \d\(mi\u
-.el .ds _ _
-.ds , ,\
-.ds y (y\*,x) co-ordinates
-.ds db database
-.ie n .ds f \fI
-.el .ds f \fB
-.ds tc \*ftermcap\fP(5)
-.ds Es This returns ERR if it would cause the screen to scroll illegally.
-.ds Nm This has no associated \*(lq\fBmv\fP\*(rq command.
-.ie t .ds m \fB\s-2\(dg\s+2\fP
-.el .ds m [*]
-.\" .hy WINDOW
-.\".he ''\*(Ln''
-.\".fo ''\- % \-''
-.oh '\*(Ln''PS1:19-%'
-.eh 'PS1:19-%''\*(Ln'
-.de Un
-.b
-\s-2\\$2UNIX\\$1\s+2
-.ft
-..
-.de Ds
-.sp
-.lp
-.ev 1
-.nf
-.ft I
-.in 0
-.di Df
-..
-.de De
-.di
-.Df
-.ne \n(dn+2
-.ev
-.ip
-..
-.de Dg
-.di
-.Df
-.ne \n(dn+2
-.ev
-..
-.de Fd
-.br
-\&\\$4
-.fi
-.b
-\&\\$1(\\$2)
-.ft
-\&\\$3
-.br
-.nf
-..
-.de Vn
-\&\\$3\c
-.i "\\$1" \\$2
-..
-.de Bq
-.ie t \&\*(lq\fB\\$1\fP\*(rq
-.el \&\*(lq\fI\\$1\fP\*(rq
-..
-.de $0
-.(x
-.in \\n(Xs
-\\*($n \\$1
-.)x
-..
-.de $1
-.nr Xs 0
-..
-.de $2
-.nr Xs 3
-..
-.de $3
-.nr Xs 6
-..
-.de Fn
-.if \\n(.$==0 .tm error
-.nr ll 0
-.nr dg 0
-.ft R
-.if '\\$\\n(.$'.' .nr ll 1
-.if '\\$\\n(.$',' .nr ll 1
-.if '\\$\\n(.$')' .nr ll 1
-.if '\\$\\n(.$').' .nr ll 1
-.if '\\$\\n(.$';' .nr ll 1
-.if '\\$\\n(.$':' .nr ll 1
-.if '\\$\\n(.$'\'s' .nr ll 1
-.if '\\$\\n(.$'\(dg' .nr ll 1
-.\" .if '\\$\\n(.$'' .nr ll 1
-.nr al \\n(.$-\\n(ll
-.ds ot \f(CB\\$1\fP(
-.if \\n(al>1 .as ot \fI\\$2\fP
-.if \\n(al>2 .as ot ", \fI\\$3\fP
-.if \\n(al>3 .as ot ", \fI\\$4\fP
-.if \\n(al>4 .as ot ", \fI\\$5\fP
-.if \\n(al>5 .as ot ", \fI\\$6\fP
-.if \\n(al>6 .as ot ", \fI\\$7\fP
-.if \\n(al>7 .as ot ", \fI\\$8\fP
-.if \\n(al>8 .as ot ", \fI\\$9\fP
-.as ot )
-.if \\n(.$>1 \{\
-. if \\n(ll==0 .as ot ;
-. if '\\$\\n(.$'\(dg' .as ot ;
-.\}
-.if \\n(ll==1 .as ot \\$\\n(.$
-\\*(ot
-..
diff --git a/lib/libocurses/PSD.doc/twinkle1.c b/lib/libocurses/PSD.doc/twinkle1.c
deleted file mode 100644
index f2e13445632..00000000000
--- a/lib/libocurses/PSD.doc/twinkle1.c
+++ /dev/null
@@ -1,153 +0,0 @@
-.\" Copyright (c) 1980, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)twinkle1.c 8.1 (Berkeley) 6/8/93
-.\"
-# include <curses.h>
-# include <signal.h>
-
-/*
- * the idea for this program was a product of the imagination of
- * Kurt Schoens. Not responsible for minds lost or stolen.
- */
-
-# define NCOLS 80
-# define NLINES 24
-# define MAXPATTERNS 4
-
-typedef struct {
- int y, x;
-} LOCS;
-
-LOCS Layout[NCOLS * NLINES]; /* current board layout */
-
-int Pattern, /* current pattern number */
- Numstars; /* number of stars in pattern */
-
-char *getenv();
-
-int die();
-
-main()
-{
- srand(getpid()); /* initialize random sequence */
-
- initscr();
- signal(SIGINT, die);
- noecho();
- nonl();
- leaveok(stdscr, TRUE);
- scrollok(stdscr, FALSE);
-
- for (;;) {
- makeboard(); /* make the board setup */
- puton('*'); /* put on '*'s */
- puton(' '); /* cover up with ' 's */
- }
-}
-
-/*
- * On program exit, move the cursor to the lower left corner by
- * direct addressing, since current location is not guaranteed.
- * We lie and say we used to be at the upper right corner to guarantee
- * absolute addressing.
- */
-die()
-{
- signal(SIGINT, SIG_IGN);
- mvcur(0, COLS - 1, LINES - 1, 0);
- endwin();
- exit(0);
-}
-
-
-/*
- * Make the current board setup. It picks a random pattern and
- * calls ison() to determine if the character is on that pattern
- * or not.
- */
-makeboard()
-{
- reg int y, x;
- reg LOCS *lp;
-
- Pattern = rand() % MAXPATTERNS;
- lp = Layout;
- for (y = 0; y < NLINES; y++)
- for (x = 0; x < NCOLS; x++)
- if (ison(y, x)) {
- lp->y = y;
- lp->x = x;
- lp++;
- }
- Numstars = lp - Layout;
-}
-
-/*
- * Return TRUE if (y, x) is on the current pattern.
- */
-ison(y, x)
-reg int y, x; {
-
- switch (Pattern) {
- case 0: /* alternating lines */
- return !(y & 01);
- case 1: /* box */
- if (x >= LINES && y >= NCOLS)
- return FALSE;
- if (y < 3 || y >= NLINES - 3)
- return TRUE;
- return (x < 3 || x >= NCOLS - 3);
- case 2: /* holy pattern! */
- return ((x + y) & 01);
- case 3: /* bar across center */
- return (y >= 9 && y <= 15);
- }
- /* NOTREACHED */
-}
-
-puton(ch)
-reg char ch;
-{
- reg LOCS *lp;
- reg int r;
- reg LOCS *end;
- LOCS temp;
-
- end = &Layout[Numstars];
- for (lp = Layout; lp < end; lp++) {
- r = rand() % Numstars;
- temp = *lp;
- *lp = Layout[r];
- Layout[r] = temp;
- }
-
- for (lp = Layout; lp < end; lp++) {
- mvaddch(lp->y, lp->x, ch);
- refresh();
- }
-}
diff --git a/lib/libocurses/PSD.doc/twinkle2.c b/lib/libocurses/PSD.doc/twinkle2.c
deleted file mode 100644
index cf6a4e4b39f..00000000000
--- a/lib/libocurses/PSD.doc/twinkle2.c
+++ /dev/null
@@ -1,92 +0,0 @@
-.\" Copyright (c) 1980, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)twinkle2.c 8.1 (Berkeley) 6/8/93
-.\"
-extern int _putchar();
-
-main()
-{
- reg char *sp;
-
- srand(getpid()); /* initialize random sequence */
-
- if (isatty(0)) {
- gettmode();
- if ((sp = getenv("TERM")) != NULL)
- setterm(sp);
- signal(SIGINT, die);
- }
- else {
- printf("Need a terminal on %d\n", _tty_ch);
- exit(1);
- }
- _puts(TI);
- _puts(VS);
-
- noecho();
- nonl();
- tputs(CL, NLINES, _putchar);
- for (;;) {
- makeboard(); /* make the board setup */
- puton('*'); /* put on '*'s */
- puton(' '); /* cover up with ' 's */
- }
-}
-
-puton(ch)
-char ch;
-{
- reg LOCS *lp;
- reg int r;
- reg LOCS *end;
- LOCS temp;
- static int lasty, lastx;
-
- end = &Layout[Numstars];
- for (lp = Layout; lp < end; lp++) {
- r = rand() % Numstars;
- temp = *lp;
- *lp = Layout[r];
- Layout[r] = temp;
- }
-
- for (lp = Layout; lp < end; lp++)
- /* prevent scrolling */
- if (!AM || (lp->y < NLINES - 1 || lp->x < NCOLS - 1)) {
- mvcur(lasty, lastx, lp->y, lp->x);
- putchar(ch);
- lasty = lp->y;
- if ((lastx = lp->x + 1) >= NCOLS)
- if (AM) {
- lastx = 0;
- lasty++;
- }
- else
- lastx = NCOLS - 1;
- }
-}
diff --git a/lib/libocurses/PSD.doc/win_st.c b/lib/libocurses/PSD.doc/win_st.c
deleted file mode 100644
index 0af63258a8c..00000000000
--- a/lib/libocurses/PSD.doc/win_st.c
+++ /dev/null
@@ -1,54 +0,0 @@
-.\" Copyright (c) 1980, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)win_st.c 8.1 (Berkeley) 6/8/93
-.\"
-# define WINDOW struct _win_st
-
-struct _win_st {
- short _cury, _curx;
- short _maxy, _maxx;
- short _begy, _begx;
- short _flags;
- short _ch_off;
- bool _clear;
- bool _leave;
- bool _scroll;
- char **_y;
- short *_firstch;
- short *_lastch;
- struct _win_st *_nextp, *_orig;
-};
-
-# define _ENDLINE 001
-# define _FULLWIN 002
-# define _SCROLLWIN 004
-# define _FLUSH 010
-# define _FULLLINE 020
-# define _IDLINE 040
-# define _STANDOUT 0200
-# define _NOCHANGE -1
diff --git a/lib/libocurses/TEST/tc1.c b/lib/libocurses/TEST/tc1.c
deleted file mode 100644
index 5263e0051ed..00000000000
--- a/lib/libocurses/TEST/tc1.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/*-
- * Copyright (c) 1983, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * tc1 [term]
- * dummy program to test termlib.
- * gets entry, counts it, and prints it.
- */
-#include <stdio.h>
-char buf[1024];
-char *getenv();
-
-main(argc, argv) char **argv; {
- char *p;
- int rc;
-
- if (argc < 2)
- p = getenv("TERM");
- else
- p = argv[1];
- rc = tgetent(buf,p);
- printf("tgetent returns %d, len=%d, text=\n'%s'\n",rc,strlen(buf),buf);
-}
diff --git a/lib/libocurses/TEST/tc2.c b/lib/libocurses/TEST/tc2.c
deleted file mode 100644
index b8723d7f554..00000000000
--- a/lib/libocurses/TEST/tc2.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/*-
- * Copyright (c) 1983, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * tc2 [term]
- * Dummy program to test out termlib.
- * Commands are "tcc\n" where t is type (s for string, f for flag,
- * or n for number) and cc is the name of the capability.
- */
-#include <stdio.h>
-char buf[1024];
-char *getenv(), *tgetstr();
-
-main(argc, argv) char **argv; {
- char *p, *q;
- int rc;
- char b[3], c;
- char area[200];
-
- if (argc < 2)
- p = getenv("TERM");
- else
- p = argv[1];
- rc = tgetent(buf,p);
- for (;;) {
- c = getchar();
- if (c < 0)
- exit(0);
- b[0] = getchar();
- if (b[0] < ' ')
- exit(0);
- b[1] = getchar();
- b[2] = 0;
- getchar();
- switch(c) {
- case 'f':
- printf("%s: %d\n",b,tgetflag(b));
- break;
- case 'n':
- printf("%s: %d\n",b,tgetnum(b));
- break;
- case 's':
- q = area;
- printf("%s: %s\n",b,tgetstr(b,&q));
- break;
- default:
- exit(0);
- }
- }
-}
diff --git a/lib/libocurses/TEST/tc3.c b/lib/libocurses/TEST/tc3.c
deleted file mode 100644
index 1dc8043d91d..00000000000
--- a/lib/libocurses/TEST/tc3.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/*-
- * Copyright (c) 1983, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * tc3 [term]
- * Dummy program to test out termlib. Input two numbers (row and col)
- * and it prints out the tgoto string generated.
- */
-#include <stdio.h>
-char buf[1024];
-char *getenv(), *tgetstr();
-char *rdchar();
-char *tgoto();
-char *CM;
-char cmbuff[30];
-char *x;
-char *UP;
-char *tgout;
-
-main(argc, argv) char **argv; {
- char *p;
- int rc;
- int row, col;
-
- if (argc < 2)
- p = getenv("TERM");
- else
- p = argv[1];
- rc = tgetent(buf,p);
- x = cmbuff;
- UP = tgetstr("up", &x);
- printf("UP = %x = ", UP); pr(UP); printf("\n");
- if (UP && *UP==0)
- UP = 0;
- CM = tgetstr("cm", &x);
- printf("CM = "); pr(CM); printf("\n");
- for (;;) {
- if (scanf("%d %d", &row, &col) < 2)
- exit(0);
- tgout = tgoto(CM, col, row);
- pr(tgout);
- printf("\n");
- }
-}
-
-pr(p)
-register char *p;
-{
- for (; *p; p++)
- printf("%s", rdchar(*p));
-}
-
-/*
- * rdchar() returns a readable representation of an ASCII character
- * using ^ for control, ' for meta.
- */
-#include <ctype.h>
-char *rdchar(c)
-char c;
-{
- static char ret[4];
- register char *p = ret;
-
- if ((c&0377) > 0177)
- *p++ = '\'';
- c &= 0177;
- if (!isprint(c))
- *p++ = '^';
- *p++ = (isprint(c) ? c : c^0100);
- *p = 0;
- return (ret);
-}
diff --git a/lib/libocurses/addbytes.c b/lib/libocurses/addbytes.c
deleted file mode 100644
index 413cf60110e..00000000000
--- a/lib/libocurses/addbytes.c
+++ /dev/null
@@ -1,150 +0,0 @@
-/* $OpenBSD: addbytes.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1987, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "curses.h"
-
-#define SYNCH_IN {y = win->cury; x = win->curx;}
-#define SYNCH_OUT {win->cury = y; win->curx = x;}
-
-/*
- * waddbytes --
- * Add the character to the current position in the given window.
- */
-int
-__waddbytes(win, bytes, count, so)
- register WINDOW *win;
- register const char *bytes;
- register int count;
- int so;
-{
- static char blanks[] = " ";
- register int c, newx, x, y;
- char stand;
- __LINE *lp;
-
- SYNCH_IN;
-
-#ifdef DEBUG
- __CTRACE("ADDBYTES('%c') at (%d, %d)\n", c, y, x);
-#endif
- while (count--) {
- c = *bytes++;
- switch (c) {
- case '\t':
- SYNCH_OUT;
- if (waddbytes(win, blanks, 8 - (x % 8)) == ERR)
- return (ERR);
- SYNCH_IN;
- break;
-
- default:
-#ifdef DEBUG
- __CTRACE("ADDBYTES(%0.2o, %d, %d)\n", win, y, x);
-#endif
-
- lp = win->lines[y];
- if (lp->flags & __ISPASTEOL) {
- lp->flags &= ~__ISPASTEOL;
-newline: if (y == win->maxy - 1) {
- if (win->flags & __SCROLLOK) {
- SYNCH_OUT;
- scroll(win);
- SYNCH_IN;
- lp = win->lines[y];
- x = 0;
- } else
- return (ERR);
- } else {
- y++;
- lp = win->lines[y];
- x = 0;
- }
- if (c == '\n')
- break;
- }
-
- stand = '\0';
- if (win->flags & __WSTANDOUT || so)
- stand |= __STANDOUT;
-#ifdef DEBUG
- __CTRACE("ADDBYTES: 1: y = %d, x = %d, firstch = %d, lastch = %d\n",
- y, x, *win->lines[y]->firstchp, *win->lines[y]->lastchp);
-#endif
- if (lp->line[x].ch != c ||
- !(lp->line[x].attr & stand)) {
- newx = x + win->ch_off;
- if (!(lp->flags & __ISDIRTY)) {
- lp->flags |= __ISDIRTY;
- *lp->firstchp = *lp->lastchp = newx;
- }
- else if (newx < *lp->firstchp)
- *lp->firstchp = newx;
- else if (newx > *lp->lastchp)
- *lp->lastchp = newx;
-#ifdef DEBUG
- __CTRACE("ADDBYTES: change gives f/l: %d/%d [%d/%d]\n",
- *lp->firstchp, *lp->lastchp,
- *lp->firstchp - win->ch_off,
- *lp->lastchp - win->ch_off);
-#endif
- }
- lp->line[x].ch = c;
- if (stand)
- lp->line[x].attr |= __STANDOUT;
- else
- lp->line[x].attr &= ~__STANDOUT;
- if (x == win->maxx - 1)
- lp->flags |= __ISPASTEOL;
- else
- x++;
-#ifdef DEBUG
- __CTRACE("ADDBYTES: 2: y = %d, x = %d, firstch = %d, lastch = %d\n",
- y, x, *win->lines[y]->firstchp, *win->lines[y]->lastchp);
-#endif
- break;
- case '\n':
- SYNCH_OUT;
- wclrtoeol(win);
- SYNCH_IN;
- if (!NONL)
- x = 0;
- goto newline;
- case '\r':
- x = 0;
- break;
- case '\b':
- if (--x < 0)
- x = 0;
- break;
- }
- }
- SYNCH_OUT;
- return (OK);
-}
diff --git a/lib/libocurses/addch.c b/lib/libocurses/addch.c
deleted file mode 100644
index dec9cf31090..00000000000
--- a/lib/libocurses/addch.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* $OpenBSD: addch.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "curses.h"
-
-/*
- * waddch --
- * Add the character to the current position in the given window.
- *
- */
-int
-waddch(win, ch)
- WINDOW *win;
- int ch;
-{
- __LDATA buf;
-
- buf.ch = ch;
- buf.attr = 0;
- return (__waddch(win, &buf));
-}
-
-int
-__waddch(win, dp)
- WINDOW *win;
- __LDATA *dp;
-{
- char buf[2];
-
- buf[0] = dp->ch;
- return (__waddbytes(win, buf, 1, dp->attr & __STANDOUT));
-}
diff --git a/lib/libocurses/addnstr.c b/lib/libocurses/addnstr.c
deleted file mode 100644
index 343f13fb62f..00000000000
--- a/lib/libocurses/addnstr.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* $OpenBSD: addnstr.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <string.h>
-
-#include "curses.h"
-
-/*
- * waddnstr --
- * Add a string (at most n characters) to the given window
- * starting at (_cury, _curx). If n is negative, add the
- * entire string.
- */
-int
-waddnstr(win, s, n)
- WINDOW *win;
- const char *s;
- int n;
-{
- size_t len;
- const char *p;
-
- if (n > 0)
- for (p = s, len = 0; n-- && *p++; ++len);
- else
- len = strlen(s);
- return (waddbytes(win, s, len));
-}
diff --git a/lib/libocurses/box.c b/lib/libocurses/box.c
deleted file mode 100644
index 2a7ee9adcbf..00000000000
--- a/lib/libocurses/box.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* $OpenBSD: box.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "curses.h"
-
-/*
- * box --
- * Draw a box around the given window with "vert" as the vertical
- * delimiting char, and "hor", as the horizontal one.
- */
-int
-box(win, vert, hor)
- register WINDOW *win;
- int vert, hor;
-{
- register int endy, endx, i;
- register __LDATA *fp, *lp;
-
- endx = win->maxx;
- endy = win->maxy - 1;
- fp = win->lines[0]->line;
- lp = win->lines[endy]->line;
- for (i = 0; i < endx; i++) {
- fp[i].ch = lp[i].ch = hor;
- fp[i].attr &= ~__STANDOUT;
- lp[i].attr &= ~__STANDOUT;
- }
- endx--;
- for (i = 0; i <= endy; i++) {
- win->lines[i]->line[0].ch = vert;
- win->lines[i]->line[endx].ch = vert;
- win->lines[i]->line[0].attr &= ~__STANDOUT;
- win->lines[i]->line[endx].attr &= ~__STANDOUT;
- }
- if (!(win->flags & __SCROLLOK) && (win->flags & __SCROLLWIN)) {
- fp[0].ch = fp[endx].ch = lp[0].ch = lp[endx].ch = ' ';
- fp[0].attr &= ~__STANDOUT;
- fp[endx].attr &= ~__STANDOUT;
- lp[0].attr &= ~__STANDOUT;
- lp[endx].attr &= ~__STANDOUT;
- }
- __touchwin(win);
- return (OK);
-}
diff --git a/lib/libocurses/clear.c b/lib/libocurses/clear.c
deleted file mode 100644
index 8ecacd1ce39..00000000000
--- a/lib/libocurses/clear.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* $OpenBSD: clear.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "curses.h"
-
-/*
- * wclear --
- * Clear the window.
- */
-int
-wclear(win)
- register WINDOW *win;
-{
- if (werase(win) == OK) {
- win->flags |= __CLEAROK;
- return (OK);
- }
- return (ERR);
-}
diff --git a/lib/libocurses/clrtobot.c b/lib/libocurses/clrtobot.c
deleted file mode 100644
index e4f81ea67f0..00000000000
--- a/lib/libocurses/clrtobot.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* $OpenBSD: clrtobot.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "curses.h"
-
-/*
- * wclrtobot --
- * Erase everything on the window.
- */
-int
-wclrtobot(win)
- register WINDOW *win;
-{
- register int minx, startx, starty, y;
- register __LDATA *sp, *end, *maxx;
-
- if (win->lines[win->cury]->flags & __ISPASTEOL) {
- starty = win->cury + 1;
- startx = 0;
- } else {
- starty = win->cury;
- startx = win->curx;
- }
- for (y = starty; y < win->maxy; y++) {
- minx = -1;
- end = &win->lines[y]->line[win->maxx];
- for (sp = &win->lines[y]->line[startx]; sp < end; sp++)
- if (sp->ch != ' ' || sp->attr != 0) {
- maxx = sp;
- if (minx == -1)
- minx = sp - win->lines[y]->line;
- sp->ch = ' ';
- sp->attr = 0;
- }
- if (minx != -1)
- __touchline(win, y, minx, maxx - win->lines[y]->line,
- 0);
- startx = 0;
- }
- return (OK);
-}
diff --git a/lib/libocurses/clrtoeol.c b/lib/libocurses/clrtoeol.c
deleted file mode 100644
index 45c60137404..00000000000
--- a/lib/libocurses/clrtoeol.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* $OpenBSD: clrtoeol.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "curses.h"
-
-/*
- * wclrtoeol --
- * Clear up to the end of line.
- */
-int
-wclrtoeol(win)
- register WINDOW *win;
-{
- register int minx, x, y;
- register __LDATA *end, *maxx, *sp;
-
- y = win->cury;
- x = win->curx;
- if (win->lines[y]->flags & __ISPASTEOL) {
- if (y < win->maxy - 1) {
- y++;
- x = 0;
- } else
- return (OK);
- }
- end = &win->lines[y]->line[win->maxx];
- minx = -1;
- maxx = &win->lines[y]->line[x];
- for (sp = maxx; sp < end; sp++)
- if (sp->ch != ' ' || sp->attr != 0) {
- maxx = sp;
- if (minx == -1)
- minx = sp - win->lines[y]->line;
- sp->ch = ' ';
- sp->attr = 0;
- }
-#ifdef DEBUG
- __CTRACE("CLRTOEOL: minx = %d, maxx = %d, firstch = %d, lastch = %d\n",
- minx, maxx - win->lines[y]->line, *win->lines[y]->firstchp,
- *win->lines[y]->lastchp);
-#endif
- /* Update firstch and lastch for the line. */
- return (__touchline(win, y, x, win->maxx - 1, 0));
-}
-
-
-
-
-
diff --git a/lib/libocurses/cr_put.c b/lib/libocurses/cr_put.c
deleted file mode 100644
index edd8a7ddaa0..00000000000
--- a/lib/libocurses/cr_put.c
+++ /dev/null
@@ -1,426 +0,0 @@
-/* $OpenBSD: cr_put.c,v 1.6 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <string.h>
-
-#include "curses.h"
-
-#define HARDTABS 8
-
-/*
- * Terminal driving and line formatting routines. Basic motion optimizations
- * are done here as well as formatting lines (printing of control characters,
- * line numbering and the like).
- */
-
-/* Stub function for the users. */
-int
-mvcur(ly, lx, y, x)
- int ly, lx, y, x;
-{
- return (__mvcur(ly, lx, y, x, 0));
-}
-
-static void fgoto(int);
-static int plod(int, int);
-static void plodput(int);
-static int tabcol(int, int);
-
-static int outcol, outline, destcol, destline;
-
-/*
- * Sync the position of the output cursor. Most work here is rounding for
- * terminal boundaries getting the column position implied by wraparound or
- * the lack thereof and rolling up the screen to get destline on the screen.
- */
-int
-__mvcur(ly, lx, y, x, in_refresh)
- int ly, lx, y, x, in_refresh;
-{
-#ifdef DEBUG
- __CTRACE("mvcur: moving cursor from (%d, %d) to (%d, %d)\n",
- ly, lx, y, x);
-#endif
- destcol = x;
- destline = y;
- outcol = lx;
- outline = ly;
- fgoto(in_refresh);
- return (OK);
-}
-
-static void
-fgoto(in_refresh)
- int in_refresh;
-{
- register int c, l;
- register char *cgp;
-
- if (destcol >= COLS) {
- destline += destcol / COLS;
- destcol %= COLS;
- }
- if (outcol >= COLS) {
- l = (outcol + 1) / COLS;
- outline += l;
- outcol %= COLS;
- if (AM == 0) {
- while (l > 0) {
- if (__pfast) {
- if (CR)
- tputs(CR, 0, __cputchar);
- else
- putchar('\r');
- }
- if (NL)
- tputs(NL, 0, __cputchar);
- else
- putchar('\n');
- l--;
- }
- outcol = 0;
- }
- if (outline > LINES - 1) {
- destline -= outline - (LINES - 1);
- outline = LINES - 1;
- }
- }
- if (destline >= LINES) {
- l = destline;
- destline = LINES - 1;
- if (outline < LINES - 1) {
- c = destcol;
- if (__pfast == 0 && !CA)
- destcol = 0;
- fgoto(in_refresh);
- destcol = c;
- }
- while (l >= LINES) {
- /* The following linefeed (or simulation thereof) is
- * supposed to scroll up the screen, since we are on
- * the bottom line. We make the assumption that
- * linefeed will scroll. If ns is in the capability
- * list this won't work. We should probably have an
- * sc capability but sf will generally take the place
- * if it works.
- *
- * Superbee glitch: in the middle of the screen have
- * to use esc B (down) because linefeed screws up in
- * "Efficient Paging" (what a joke) mode (which is
- * essential in some SB's because CRLF mode puts
- * garbage in at end of memory), but you must use
- * linefeed to scroll since down arrow won't go past
- * memory end. I turned this off after receiving Paul
- * Eggert's Superbee description which wins better.
- */
- if (NL /* && !XB */ && __pfast)
- tputs(NL, 0, __cputchar);
- else
- putchar('\n');
- l--;
- if (__pfast == 0)
- outcol = 0;
- }
- }
- if (destline < outline && !(CA || UP))
- destline = outline;
- if (CA) {
- cgp = tgoto(CM, destcol, destline);
-
- /*
- * Need this condition due to inconsistent behavior
- * of backspace on the last column.
- */
- if (outcol != COLS - 1 && plod(strlen(cgp), in_refresh) > 0)
- plod(0, in_refresh);
- else
- tputs(cgp, 0, __cputchar);
- } else
- plod(0, in_refresh);
- outline = destline;
- outcol = destcol;
-}
-/*
- * Move (slowly) to destination.
- * Hard thing here is using home cursor on really deficient terminals.
- * Otherwise just use cursor motions, hacking use of tabs and overtabbing
- * and backspace.
- */
-
-static int plodcnt, plodflg;
-
-static void
-plodput(c)
- int c;
-{
- if (plodflg)
- --plodcnt;
- else
- putchar(c);
-}
-
-static int
-plod(cnt, in_refresh)
- int cnt, in_refresh;
-{
- register int i, j, k, soutcol, soutline;
-
- plodcnt = plodflg = cnt;
- soutcol = outcol;
- soutline = outline;
- /*
- * Consider homing and moving down/right from there, vs. moving
- * directly with local motions to the right spot.
- */
- if (HO) {
- /*
- * i is the cost to home and tab/space to the right to get to
- * the proper column. This assumes ND space costs 1 char. So
- * i + destcol is cost of motion with home.
- */
- if (GT)
- i = (destcol / HARDTABS) + (destcol % HARDTABS);
- else
- i = destcol;
-
- /* j is cost to move locally without homing. */
- if (destcol >= outcol) { /* if motion is to the right */
- j = destcol / HARDTABS - outcol / HARDTABS;
- if (GT && j)
- j += destcol % HARDTABS;
- else
- j = destcol - outcol;
- } else
- /* leftward motion only works if we can backspace. */
- if (outcol - destcol <= i && (BS || BC))
- /* Cheaper to backspace. */
- i = j = outcol - destcol;
- else
- /* Impossibly expensive. */
- j = i + 1;
-
- /* k is the absolute value of vertical distance. */
- k = outline - destline;
- if (k < 0)
- k = -k;
- j += k;
-
- /* Decision. We may not have a choice if no UP. */
- if (i + destline < j || (!UP && destline < outline)) {
- /*
- * Cheaper to home. Do it now and pretend it's a
- * regular local motion.
- */
- tputs(HO, 0, plodput);
- outcol = outline = 0;
- } else if (LL) {
- /*
- * Quickly consider homing down and moving from there.
- * Assume cost of LL is 2.
- */
- k = (LINES - 1) - destline;
- if (i + k + 2 < j && (k <= 0 || UP)) {
- tputs(LL, 0, plodput);
- outcol = 0;
- outline = LINES - 1;
- }
- }
- } else
- /* No home and no up means it's impossible. */
- if (!UP && destline < outline)
- return (-1);
- if (GT)
- i = destcol % HARDTABS + destcol / HARDTABS;
- else
- i = destcol;
-#ifdef notdef
- if (BT && outcol > destcol &&
- (j = (((outcol+7) & ~7) - destcol - 1) >> 3)) {
- j *= (k = strlen(BT));
- if ((k += (destcol&7)) > 4)
- j += 8 - (destcol&7);
- else
- j += k;
- }
- else
-#endif
- j = outcol - destcol;
-
- /*
- * If we will later need a \n which will turn into a \r\n by the
- * system or the terminal, then don't bother to try to \r.
- */
- if ((NONL || !__pfast) && outline < destline)
- goto dontcr;
-
- /*
- * If the terminal will do a \r\n and there isn't room for it, then
- * we can't afford a \r.
- */
- if (NC && outline >= destline)
- goto dontcr;
-
- /*
- * If it will be cheaper, or if we can't back up, then send a return
- * preliminarily.
- */
- if (j > i + 1 || (outcol > destcol && !BS && !BC)) {
- /*
- * BUG: this doesn't take the (possibly long) length of CR
- * into account.
- */
- if (CR)
- tputs(CR, 0, plodput);
- else
- plodput('\r');
- if (NC) {
- if (NL)
- tputs(NL, 0, plodput);
- else
- plodput('\n');
- outline++;
- }
- outcol = 0;
- }
-
-dontcr: while (outline < destline) {
- outline++;
- if (NL)
- tputs(NL, 0, plodput);
- else
- plodput('\n');
- if (plodcnt < 0)
- goto out;
- if (NONL || __pfast == 0)
- outcol = 0;
- }
- if (BT)
- k = strlen(BT);
- while (outcol > destcol) {
- if (plodcnt < 0)
- goto out;
-#ifdef notdef
- if (BT && outcol - destcol > k + 4) {
- tputs(BT, 0, plodput);
- outcol--;
- outcol &= ~7;
- continue;
- }
-#endif
- outcol--;
- if (BC)
- tputs(BC, 0, plodput);
- else
- plodput('\b');
- }
- while (outline > destline) {
- outline--;
- tputs(UP, 0, plodput);
- if (plodcnt < 0)
- goto out;
- }
- if (GT && destcol - outcol > 1) {
- for (;;) {
- i = tabcol(outcol, HARDTABS);
- if (i > destcol)
- break;
- if (TA)
- tputs(TA, 0, plodput);
- else
- plodput('\t');
- outcol = i;
- }
- if (destcol - outcol > 4 && i < COLS && (BC || BS)) {
- if (TA)
- tputs(TA, 0, plodput);
- else
- plodput('\t');
- outcol = i;
- while (outcol > destcol) {
- outcol--;
- if (BC)
- tputs(BC, 0, plodput);
- else
- plodput('\b');
- }
- }
- }
- while (outcol < destcol) {
- /*
- * Move one char to the right. We don't use ND space because
- * it's better to just print the char we are moving over.
- */
- if (in_refresh) {
- if (plodflg) /* Avoid a complex calculation. */
- plodcnt--;
- else {
- i = curscr->lines[outline]->line[outcol].ch;
- if ((curscr->lines[outline]->line[outcol].attr
- & __STANDOUT) ==
- (curscr->flags & __WSTANDOUT))
- putchar(i);
- else
- goto nondes;
- }
- } else
-nondes: if (ND)
- tputs(ND, 0, plodput);
- else
- plodput(' ');
- outcol++;
- if (plodcnt < 0)
- goto out;
- }
-
-out: if (plodflg) {
- outcol = soutcol;
- outline = soutline;
- }
- return (plodcnt);
-}
-
-/*
- * Return the column number that results from being in column col and
- * hitting a tab, where tabs are set every ts columns. Work right for
- * the case where col > COLS, even if ts does not divide COLS.
- */
-static int
-tabcol(col, ts)
- int col, ts;
-{
- int offset;
-
- if (col >= COLS) {
- offset = COLS * (col / COLS);
- col -= offset;
- } else
- offset = 0;
- return (col + ts - (col % ts) + offset);
-}
diff --git a/lib/libocurses/ctrace.c b/lib/libocurses/ctrace.c
deleted file mode 100644
index abf77bd4520..00000000000
--- a/lib/libocurses/ctrace.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* $OpenBSD: ctrace.c,v 1.5 2005/08/14 17:15:19 espie Exp $ */
-/*-
- * Copyright (c) 1992, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifdef DEBUG
-#include <stdio.h>
-#include <stdarg.h>
-
-#ifndef TFILE
-#define TFILE "__curses.out"
-#endif
-
-static FILE *tracefp; /* Curses debugging file descriptor. */
-
-void
-__CTRACE(const char *fmt, ...)
-{
- va_list ap;
-
- va_start(ap, fmt);
- if (tracefp == NULL)
- tracefp = fopen(TFILE, "w");
- if (tracefp == NULL) {
- va_end(ap);
- return;
- }
- (void)vfprintf(tracefp, fmt, ap);
- va_end(ap);
- (void)fflush(tracefp);
-}
-#endif
diff --git a/lib/libocurses/cur_hash.c b/lib/libocurses/cur_hash.c
deleted file mode 100644
index 97ab438674f..00000000000
--- a/lib/libocurses/cur_hash.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* $OpenBSD: cur_hash.c,v 1.4 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1992, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/types.h>
-
-
-/*
- * __hash() is "hashpjw" from the Dragon Book, Aho, Sethi & Ullman, p.436.
- */
-u_int
-__hash(s, len)
- char *s;
- int len;
-{
- register u_int h, g, i;
-
- h = 0;
- i = 0;
- while (i < len) {
- h = (h << 4) + s[i];
- if ((g = h & 0xf0000000)) {
- h = h ^ (g >> 24);
- h = h ^ g;
- }
- i++;
- }
- return h;
-}
diff --git a/lib/libocurses/curses.c b/lib/libocurses/curses.c
deleted file mode 100644
index ce4fd465eb0..00000000000
--- a/lib/libocurses/curses.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* $OpenBSD: curses.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "curses.h"
-
-/* Private. */
-int __echoit = 1; /* If stty indicates ECHO. */
-int __pfast;
-int __rawmode = 0; /* If stty indicates RAW mode. */
-int __noqch = 0; /*
- * If terminal doesn't have
- * insert/delete line capabilities
- * for quick change on refresh.
- */
-char AM, BS, CA, DA, EO, HC, IN, MI, MS, NC, NS, OS, PC,
- UL, XB, XN, XT, XS, XX;
-char *AL, *BC, *BT, *CD, *CE, *CL, *CM, *CR, *CS, *DC, *DL,
- *DM, *DO, *ED, *EI, *K0, *K1, *K2, *K3, *K4, *K5, *K6,
- *K7, *K8, *K9, *HO, *IC, *IM, *IP, *KD, *KE, *KH, *KL,
- *KR, *KS, *KU, *LL, *MA, *ND, *NL, *RC, *SC, *SE, *SF,
- *SO, *SR, *TA, *TE, *TI, *UC, *UE, *UP, *US, *VB, *VS,
- *VE, *al, *dl, *sf, *sr,
- *AL_PARM, *DL_PARM, *UP_PARM, *DOWN_PARM, *LEFT_PARM,
- *RIGHT_PARM;
-/*
- * Public.
- *
- * XXX
- * UPPERCASE isn't used by libcurses, and is left for backward
- * compatibility only.
- */
-WINDOW *curscr; /* Current screen. */
-WINDOW *stdscr; /* Standard screen. */
-int COLS; /* Columns on the screen. */
-int LINES; /* Lines on the screen. */
-int My_term = 0; /* Use Def_term regardless. */
-char *Def_term = "unknown"; /* Default terminal type. */
-char GT; /* Gtty indicates tabs. */
-char NONL; /* Term can't hack LF doing a CR. */
-char UPPERCASE; /* Terminal is uppercase only. */
diff --git a/lib/libocurses/curses.h b/lib/libocurses/curses.h
deleted file mode 100644
index 9ef42ce8002..00000000000
--- a/lib/libocurses/curses.h
+++ /dev/null
@@ -1,335 +0,0 @@
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)curses.h 8.4 (Berkeley) 8/10/94
- */
-
-#ifndef _OCURSES_H_
-#define _OCURSES_H_
-
-#include <sys/types.h>
-
-#include <stdio.h>
-
-#define bool char
-
-#ifndef TRUE
-#define TRUE (1)
-#endif
-#ifndef FALSE
-#define FALSE (0)
-#endif
-
-/*
- * The following #defines and #includes are present for backward
- * compatibility only. They should not be used in future code.
- *
- * START BACKWARD COMPATIBILITY ONLY.
- */
-#ifndef _CURSES_PRIVATE
-#define _puts(s) tputs(s, 0, __cputchar)
-#define _putchar(c) __cputchar(c)
-
-/* Old-style terminal modes access. */
-#define baudrate() (cfgetospeed(&__baset))
-#define crmode() cbreak()
-#define erasechar() (__baset.c_cc[VERASE])
-#define killchar() (__baset.c_cc[VKILL])
-#define nocrmode() nocbreak()
-#define ospeed (cfgetospeed(&__baset))
-#endif /* _CURSES_PRIVATE */
-
-extern char GT; /* Gtty indicates tabs. */
-extern char NONL; /* Term can't hack LF doing a CR. */
-extern char UPPERCASE; /* Terminal is uppercase only. */
-
-extern int My_term; /* Use Def_term regardless. */
-extern char *Def_term; /* Default terminal type. */
-
-/* Termcap capabilities. */
-extern char AM, BS, CA, DA, EO, HC, IN, MI, MS, NC, NS, OS,
- PC, UL, XB, XN, XT, XS, XX;
-extern char *AL, *BC, *BT, *CD, *CE, *CL, *CM, *CR, *CS, *DC, *DL,
- *DM, *DO, *ED, *EI, *K0, *K1, *K2, *K3, *K4, *K5, *K6,
- *K7, *K8, *K9, *HO, *IC, *IM, *IP, *KD, *KE, *KH, *KL,
- *KR, *KS, *KU, *LL, *MA, *ND, *NL, *RC, *SC, *SE, *SF,
- *SO, *SR, *TA, *TE, *TI, *UC, *UE, *UP, *US, *VB, *VS,
- *VE, *al, *dl, *sf, *sr,
- *AL_PARM, *DL_PARM, *UP_PARM, *DOWN_PARM, *LEFT_PARM,
- *RIGHT_PARM;
-
-/* END BACKWARD COMPATIBILITY ONLY. */
-
-/* 8-bit ASCII characters. */
-#define unctrl(c) __unctrl[(c) & 0xff]
-#define unctrllen(ch) __unctrllen[(ch) & 0xff]
-
-extern char *__unctrl[256]; /* Control strings. */
-extern char __unctrllen[256]; /* Control strings length. */
-
-/*
- * A window an array of __LINE structures pointed to by the 'lines' pointer.
- * A line is an array of __LDATA structures pointed to by the 'line' pointer.
- *
- * IMPORTANT: the __LDATA structure must NOT induce any padding, so if new
- * fields are added -- padding fields with *constant values* should ensure
- * that the compiler will not generate any padding when storing an array of
- * __LDATA structures. This is to enable consistent use of memcmp, and memcpy
- * for comparing and copying arrays.
- */
-typedef struct {
- char ch; /* the actual character */
-
-#define __STANDOUT 0x01 /* Added characters are standout. */
- char attr; /* attributes of character */
-} __LDATA;
-
-#define __LDATASIZE (sizeof(__LDATA))
-
-typedef struct {
-#define __ISDIRTY 0x01 /* Line is dirty. */
-#define __ISPASTEOL 0x02 /* Cursor is past end of line */
-#define __FORCEPAINT 0x04 /* Force a repaint of the line */
- unsigned int flags;
- unsigned int hash; /* Hash value for the line. */
- size_t *firstchp, *lastchp; /* First and last chngd columns ptrs */
- size_t firstch, lastch; /* First and last changed columns. */
- __LDATA *line; /* Pointer to the line text. */
-} __LINE;
-
-typedef struct __window { /* Window structure. */
- struct __window *nextp, *orig; /* Subwindows list and parent. */
- size_t begy, begx; /* Window home. */
- size_t cury, curx; /* Current x, y coordinates. */
- size_t maxy, maxx; /* Maximum values for curx, cury. */
- short ch_off; /* x offset for firstch/lastch. */
- __LINE **lines; /* Array of pointers to the lines */
- __LINE *lspace; /* line space (for cleanup) */
- __LDATA *wspace; /* window space (for cleanup) */
-
-#define __ENDLINE 0x001 /* End of screen. */
-#define __FLUSH 0x002 /* Fflush(stdout) after refresh. */
-#define __FULLWIN 0x004 /* Window is a screen. */
-#define __IDLINE 0x008 /* Insert/delete sequences. */
-#define __SCROLLWIN 0x010 /* Last char will scroll window. */
-#define __SCROLLOK 0x020 /* Scrolling ok. */
-#define __CLEAROK 0x040 /* Clear on next refresh. */
-#define __WSTANDOUT 0x080 /* Standout window */
-#define __LEAVEOK 0x100 /* If curser left */
- unsigned int flags;
-} WINDOW;
-
-/* Curses external declarations. */
-extern WINDOW *curscr; /* Current screen. */
-extern WINDOW *stdscr; /* Standard screen. */
-
-extern struct termios __orig_termios; /* Terminal state before curses */
-extern struct termios __baset; /* Our base terminal state */
-extern int __tcaction; /* If terminal hardware set. */
-
-extern int COLS; /* Columns on the screen. */
-extern int LINES; /* Lines on the screen. */
-
-extern char *ttytype; /* Full name of current terminal. */
-
-#define ERR (0) /* Error return. */
-#define OK (1) /* Success return. */
-
-/* Standard screen pseudo functions. */
-#define addbytes(s, n) __waddbytes(stdscr, s, n, 0)
-#define addch(ch) waddch(stdscr, ch)
-#define addnstr(s, n) waddnstr(stdscr, s, n)
-#define addstr(s) __waddbytes(stdscr, s, strlen(s), 0)
-#define clear() wclear(stdscr)
-#define clrtobot() wclrtobot(stdscr)
-#define clrtoeol() wclrtoeol(stdscr)
-#define delch() wdelch(stdscr)
-#define deleteln() wdeleteln(stdscr)
-#define erase() werase(stdscr)
-#define getch() wgetch(stdscr)
-#define getstr(s) wgetstr(stdscr, s)
-#define inch() winch(stdscr)
-#define insch(ch) winsch(stdscr, ch)
-#define insertln() winsertln(stdscr)
-#define move(y, x) wmove(stdscr, y, x)
-#define refresh() wrefresh(stdscr)
-#define standend() wstandend(stdscr)
-#define standout() wstandout(stdscr)
-#define waddbytes(w, s, n) __waddbytes(w, s, n, 0)
-#define waddstr(w, s) __waddbytes(w, s, strlen(s), 0)
-
-/* Standard screen plus movement pseudo functions. */
-#define mvaddbytes(y, x, s, n) mvwaddbytes(stdscr, y, x, s, n)
-#define mvaddch(y, x, ch) mvwaddch(stdscr, y, x, ch)
-#define mvaddnstr(y, x, s, n) mvwaddnstr(stdscr, y, x, s, n)
-#define mvaddstr(y, x, s) mvwaddstr(stdscr, y, x, s)
-#define mvdelch(y, x) mvwdelch(stdscr, y, x)
-#define mvgetch(y, x) mvwgetch(stdscr, y, x)
-#define mvgetstr(y, x, s) mvwgetstr(stdscr, y, x, s)
-#define mvinch(y, x) mvwinch(stdscr, y, x)
-#define mvinsch(y, x, c) mvwinsch(stdscr, y, x, c)
-#define mvwaddbytes(w, y, x, s, n) \
- (wmove(w, y, x) == ERR ? ERR : __waddbytes(w, s, n, 0))
-#define mvwaddch(w, y, x, ch) \
- (wmove(w, y, x) == ERR ? ERR : waddch(w, ch))
-#define mvwaddnstr(w, y, x, s, n) \
- (wmove(w, y, x) == ERR ? ERR : waddnstr(w, s, n))
-#define mvwaddstr(w, y, x, s) \
- (wmove(w, y, x) == ERR ? ERR : __waddbytes(w, s, strlen(s), 0))
-#define mvwdelch(w, y, x) \
- (wmove(w, y, x) == ERR ? ERR : wdelch(w))
-#define mvwgetch(w, y, x) \
- (wmove(w, y, x) == ERR ? ERR : wgetch(w))
-#define mvwgetstr(w, y, x, s) \
- (wmove(w, y, x) == ERR ? ERR : wgetstr(w, s))
-#define mvwinch(w, y, x) \
- (wmove(w, y, x) == ERR ? ERR : winch(w))
-#define mvwinsch(w, y, x, c) \
- (wmove(w, y, x) == ERR ? ERR : winsch(w, c))
-
-/* Psuedo functions. */
-#define clearok(w, bf) \
- ((bf) ? ((w)->flags |= __CLEAROK) : ((w)->flags &= ~__CLEAROK))
-#define flushok(w, bf) \
- ((bf) ? ((w)->flags |= __FLUSH) : ((w)->flags &= ~__FLUSH))
-#define getyx(w, y, x) \
- (y) = (w)->cury, (x) = (w)->curx
-#define leaveok(w, bf) \
- ((bf) ? ((w)->flags |= __LEAVEOK) : ((w)->flags &= ~__LEAVEOK))
-#define scrollok(w, bf) \
- ((bf) ? ((w)->flags |= __SCROLLOK) : ((w)->flags &= ~__SCROLLOK))
-#define winch(w) \
- ((w)->lines[(w)->cury]->line[(w)->curx].ch & 0177)
-
-/* Public function prototypes. */
-__BEGIN_DECLS
-int box(WINDOW *, int, int);
-int cbreak(void);
-int delwin(WINDOW *);
-int echo(void);
-int endwin(void);
-char *fullname(char *, char *);
-char *getcap(char *);
-int gettmode(void);
-void idlok(WINDOW *, int);
-WINDOW *initscr(void);
-char *longname(char *, char *);
-int mvcur(int, int, int, int);
-int mvprintw(int, int, const char *, ...);
-int mvscanw(int, int, const char *, ...);
-int mvwin(WINDOW *, int, int);
-int mvwprintw(WINDOW *, int, int, const char *, ...);
-int mvwscanw(WINDOW *, int, int, const char *, ...);
-WINDOW *newwin(int, int, int, int);
-int nl(void);
-int nocbreak(void);
-int noecho(void);
-int nonl(void);
-int noraw(void);
-int overlay(WINDOW *, WINDOW *);
-int overwrite(WINDOW *, WINDOW *);
-int printw(const char *, ...);
-int raw(void);
-int resetty(void);
-int savetty(void);
-int scanw(const char *, ...);
-int scroll(WINDOW *);
-int setterm(char *);
-int sscans(WINDOW *, const char *, ...);
-WINDOW *subwin(WINDOW *, int, int, int, int);
-int suspendwin(void);
-int touchline(WINDOW *, int, int, int);
-int touchoverlap(WINDOW *, WINDOW *);
-int touchwin(WINDOW *);
-int vwprintw(WINDOW *, const char *, __va_list);
-int vwscanw(WINDOW *, const char *, __va_list);
-int waddch(WINDOW *, int);
-int waddnstr(WINDOW *, const char *, int);
-int wclear(WINDOW *);
-int wclrtobot(WINDOW *);
-int wclrtoeol(WINDOW *);
-int wdelch(WINDOW *);
-int wdeleteln(WINDOW *);
-int werase(WINDOW *);
-int wgetch(WINDOW *);
-int wgetstr(WINDOW *, char *);
-int winsch(WINDOW *, int);
-int winsertln(WINDOW *);
-int wmove(WINDOW *, int, int);
-int wprintw(WINDOW *, const char *, ...);
-int wrefresh(WINDOW *);
-int wscanw(WINDOW *, const char *, ...);
-int wstandend(WINDOW *);
-int wstandout(WINDOW *);
-int vwprintw(WINDOW *, const char *, __va_list);
-
-/* Private functions that are needed for user programs prototypes. */
-void __cputchar(int);
-int __waddbytes(WINDOW *, const char *, int, int);
-__END_DECLS
-
-/* Private functions. */
-#ifdef _CURSES_PRIVATE
-void __CTRACE(const char *, ...);
-unsigned int __hash(char *, int);
-void __id_subwins(WINDOW *);
-int __mvcur(int, int, int, int, int);
-void __restore_stophandler(void);
-void __set_stophandler(void);
-void __set_subwin(WINDOW *, WINDOW *);
-void __startwin(void);
-void __stop_signal_handler(int);
-void __swflags(WINDOW *);
-int __touchline(WINDOW *, int, int, int, int);
-int __touchwin(WINDOW *);
-char *__tscroll(const char *, int, int);
-int __waddch(WINDOW *, __LDATA *);
-
-/* Private #defines. */
-#define min(a,b) (a < b ? a : b)
-#define max(a,b) (a > b ? a : b)
-
-/* Private externs. */
-extern int __echoit;
-extern int __endwin;
-extern int __pfast;
-extern int __rawmode;
-extern int __noqch;
-#endif
-
-/* Termcap functions. */
-__BEGIN_DECLS
-int tgetent(char *, char *);
-int tgetnum(char *);
-int tgetflag(char *);
-char *tgetstr(char *, char **);
-char *tgoto(char *, int, int);
-void tputs(char *, int, void (*)(int));
-__END_DECLS
-
-#endif /* !_OCURSES_H_ */
diff --git a/lib/libocurses/delch.c b/lib/libocurses/delch.c
deleted file mode 100644
index d8c0471a07c..00000000000
--- a/lib/libocurses/delch.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* $OpenBSD: delch.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <string.h>
-
-#include "curses.h"
-
-/*
- * wdelch --
- * Do an insert-char on the line, leaving (cury, curx) unchanged.
- */
-int
-wdelch(win)
- register WINDOW *win;
-{
- register __LDATA *end, *temp1, *temp2;
-
- end = &win->lines[win->cury]->line[win->maxx - 1];
- temp1 = &win->lines[win->cury]->line[win->curx];
- temp2 = temp1 + 1;
- while (temp1 < end) {
- (void)memcpy(temp1, temp2, sizeof(__LDATA));
- temp1++, temp2++;
- }
- temp1->ch = ' ';
- temp1->attr = 0;
- __touchline(win, win->cury, win->curx, win->maxx - 1, 0);
- return (OK);
-}
diff --git a/lib/libocurses/deleteln.c b/lib/libocurses/deleteln.c
deleted file mode 100644
index a65781ebb65..00000000000
--- a/lib/libocurses/deleteln.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* $OpenBSD: deleteln.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <string.h>
-
-#include "curses.h"
-
-/*
- * wdeleteln --
- * Delete a line from the screen. It leaves (cury, curx) unchanged.
- */
-int
-wdeleteln(win)
- register WINDOW *win;
-{
- register int y, i;
- register __LINE *temp;
-
-#ifdef DEBUG
- __CTRACE("deleteln: (%0.2o)\n", win);
-#endif
- temp = win->lines[win->cury];
- for (y = win->cury; y < win->maxy - 1; y++) {
- win->lines[y]->flags &= ~__ISPASTEOL;
- win->lines[y + 1]->flags &= ~__ISPASTEOL;
- if (win->orig == NULL)
- win->lines[y] = win->lines[y + 1];
- else
- (void) memcpy(win->lines[y]->line,
- win->lines[y + 1]->line,
- win->maxx * __LDATASIZE);
- __touchline(win, y, 0, win->maxx - 1, 0);
- }
-
- if (win->orig == NULL)
- win->lines[y] = temp;
- else
- temp = win->lines[y];
-
- for(i = 0; i < win->maxx; i++) {
- temp->line[i].ch = ' ';
- temp->line[i].attr = 0;
- }
- __touchline(win, y, 0, win->maxx - 1, 0);
- if (win->orig == NULL)
- __id_subwins(win);
- return (OK);
-}
diff --git a/lib/libocurses/delwin.c b/lib/libocurses/delwin.c
deleted file mode 100644
index addfe54c7dd..00000000000
--- a/lib/libocurses/delwin.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* $OpenBSD: delwin.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <stdlib.h>
-
-#include "curses.h"
-
-/*
- * delwin --
- * Delete a window and release it back to the system.
- */
-int
-delwin(win)
- register WINDOW *win;
-{
-
- register WINDOW *wp, *np;
-
- if (win->orig == NULL) {
- /*
- * If we are the original window, delete the space for all
- * the subwindows, the line space and the window space.
- */
- free(win->lspace);
- free(win->wspace);
- free(win->lines);
- wp = win->nextp;
- while (wp != win) {
- np = wp->nextp;
- delwin(wp);
- wp = np;
- }
- } else {
- /*
- * If we are a subwindow, take ourselves out of the list.
- * NOTE: if we are a subwindow, the minimum list is orig
- * followed by this subwindow, so there are always at least
- * two windows in the list.
- */
- for (wp = win->nextp; wp->nextp != win; wp = wp->nextp)
- continue;
- wp->nextp = win->nextp;
- }
- free(win);
- return (OK);
-}
diff --git a/lib/libocurses/erase.c b/lib/libocurses/erase.c
deleted file mode 100644
index 831457bf65c..00000000000
--- a/lib/libocurses/erase.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* $OpenBSD: erase.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "curses.h"
-
-/*
- * werase --
- * Erases everything on the window.
- */
-int
-werase(win)
- register WINDOW *win;
-{
-
- register int minx, y;
- register __LDATA *sp, *end, *start, *maxx;
-
-#ifdef DEBUG
- __CTRACE("werase: (%0.2o)\n", win);
-#endif
- for (y = 0; y < win->maxy; y++) {
- minx = -1;
- start = win->lines[y]->line;
- end = &start[win->maxx];
- for (sp = start; sp < end; sp++)
- if (sp->ch != ' ' || sp->attr != 0) {
- maxx = sp;
- if (minx == -1)
- minx = sp - start;
- sp->ch = ' ';
- sp->attr = 0;
- }
- if (minx != -1)
- __touchline(win, y, minx, maxx - win->lines[y]->line,
- 0);
- }
- return (OK);
-}
diff --git a/lib/libocurses/fullname.c b/lib/libocurses/fullname.c
deleted file mode 100644
index 7ab2de3827b..00000000000
--- a/lib/libocurses/fullname.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* $OpenBSD: fullname.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * fullname --
- * This routine fills in "def" with the full name of the terminal.
- * This is assumed to be the last name in the list of aliases.
- */
-char *
-fullname(bp, def)
- register char *bp, *def;
-{
- register char *cp;
-
- *def = '\0'; /* In case no name. */
-
- while (*bp && *bp != ':') {
- cp = def; /* Start of answer. */
- while (*bp && *bp != ':' && *bp != '|')
- *cp++ = *bp++; /* Copy name over. */
- *cp = '\0'; /* Zero end of name. */
- if (*bp == '|')
- bp++; /* Skip over '|' if that is case. */
- }
- return (def);
-}
diff --git a/lib/libocurses/getch.c b/lib/libocurses/getch.c
deleted file mode 100644
index 9fa8eccecd4..00000000000
--- a/lib/libocurses/getch.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* $OpenBSD: getch.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "curses.h"
-
-/*
- * wgetch --
- * Read in a character from the window.
- */
-int
-wgetch(win)
- register WINDOW *win;
-{
- register int inp, weset;
-
- if (!(win->flags & __SCROLLOK) && (win->flags & __FULLWIN)
- && win->curx == win->maxx - 1 && win->cury == win->maxy - 1)
- return (ERR);
-#ifdef DEBUG
- __CTRACE("wgetch: __echoit = %d, __rawmode = %d\n",
- __echoit, __rawmode);
-#endif
- if (__echoit && !__rawmode) {
- cbreak();
- weset = 1;
- } else
- weset = 0;
-
- inp = getchar();
-#ifdef DEBUG
- __CTRACE("wgetch got '%s'\n", unctrl(inp));
-#endif
- if (__echoit) {
- mvwaddch(curscr,
- win->cury + win->begy, win->curx + win->begx, inp);
- waddch(win, inp);
- }
- if (weset)
- nocbreak();
- return (inp);
-}
diff --git a/lib/libocurses/getstr.c b/lib/libocurses/getstr.c
deleted file mode 100644
index cc4c351f4f7..00000000000
--- a/lib/libocurses/getstr.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* $OpenBSD: getstr.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "curses.h"
-
-/*
- * wgetstr --
- * Get a string starting at (cury, curx).
- */
-int
-wgetstr(win, str)
- register WINDOW *win;
- register char *str;
-{
- while ((*str = wgetch(win)) != ERR && *str != '\n')
- str++;
- if (*str == ERR) {
- *str = '\0';
- return (ERR);
- }
- *str = '\0';
- return (OK);
-}
diff --git a/lib/libocurses/id_subwins.c b/lib/libocurses/id_subwins.c
deleted file mode 100644
index 8dffd95bda8..00000000000
--- a/lib/libocurses/id_subwins.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/* $OpenBSD: id_subwins.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "curses.h"
-
-/*
- * __id_subwins --
- * Re-sync the pointers to lines for all the subwindows.
- */
-void
-__id_subwins(orig)
- register WINDOW *orig;
-{
- register WINDOW *win;
- register int oy, realy, y;
-
- realy = orig->begy + orig->cury;
- for (win = orig->nextp; win != orig; win = win->nextp) {
- /*
- * If the window ends before our current position, don't need
- * to do anything.
- */
- if (win->begy + win->maxy <= realy)
- continue;
-
- oy = orig->cury;
- for (y = realy - win->begy; y < win->maxy; y++, oy++)
- win->lines[y]->line =
- &orig->lines[oy]->line[win->ch_off];
- }
-}
diff --git a/lib/libocurses/idlok.c b/lib/libocurses/idlok.c
deleted file mode 100644
index 434a5bf9c6f..00000000000
--- a/lib/libocurses/idlok.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* $OpenBSD: idlok.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "curses.h"
-
-/*
- * idlok --
- * Turn on and off using insert/deleteln sequences for the
- * given window.
- */
-void
-idlok(win, bf)
- WINDOW *win;
- int bf;
-{
- if (bf)
- win->flags |= __IDLINE;
- else
- win->flags &= ~__IDLINE;
-}
diff --git a/lib/libocurses/initscr.c b/lib/libocurses/initscr.c
deleted file mode 100644
index 1c4e7e3a5f3..00000000000
--- a/lib/libocurses/initscr.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* $OpenBSD: initscr.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <signal.h>
-#include <stdlib.h>
-
-#include "curses.h"
-
-/*
- * initscr --
- * Initialize the current and standard screen.
- */
-WINDOW *
-initscr()
-{
- register char *sp;
-
-#ifdef DEBUG
- __CTRACE("initscr\n");
-#endif
- __echoit = 1;
- __pfast = __rawmode = __noqch = 0;
-
- if (gettmode() == ERR)
- return (NULL);
-
- /*
- * If My_term is set, or can't find a terminal in the environment,
- * use Def_term.
- */
- if (My_term || (sp = getenv("TERM")) == NULL)
- sp = Def_term;
- if (setterm(sp) == ERR)
- return (NULL);
-
- /* Need either homing or cursor motion for refreshes */
- if (!HO && !CM)
- return (NULL);
-
- if (curscr != NULL)
- delwin(curscr);
- if ((curscr = newwin(LINES, COLS, 0, 0)) == ERR)
- return (NULL);
- clearok(curscr, 1);
-
- if (stdscr != NULL)
- delwin(stdscr);
- if ((stdscr = newwin(LINES, COLS, 0, 0)) == ERR) {
- delwin(curscr);
- return (NULL);
- }
-
- __set_stophandler();
-
-#ifdef DEBUG
- __CTRACE("initscr: LINES = %d, COLS = %d\n", LINES, COLS);
-#endif
- __startwin();
-
- return (stdscr);
-}
diff --git a/lib/libocurses/insch.c b/lib/libocurses/insch.c
deleted file mode 100644
index c4b1702a55d..00000000000
--- a/lib/libocurses/insch.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* $OpenBSD: insch.c,v 1.4 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <string.h>
-
-#include "curses.h"
-
-/*
- * winsch --
- * Do an insert-char on the line, leaving (cury, curx) unchanged.
- */
-int
-winsch(win, ch)
- register WINDOW *win;
- int ch;
-{
-
- register __LDATA *end, *temp1, *temp2;
-
- end = &win->lines[win->cury]->line[win->curx];
- temp1 = &win->lines[win->cury]->line[win->maxx - 1];
- temp2 = temp1 - 1;
- while (temp1 > end) {
- (void)memcpy(temp1, temp2, sizeof(__LDATA));
- temp1--, temp2--;
- }
- temp1->ch = ch;
- temp1->attr &= ~__STANDOUT;
- __touchline(win, win->cury, win->curx, win->maxx - 1, 0);
- if (win->cury == LINES - 1 &&
- (win->lines[LINES - 1]->line[COLS - 1].ch != ' ' ||
- win->lines[LINES -1]->line[COLS - 1].attr != 0)) {
- if (win->flags & __SCROLLOK) {
- wrefresh(win);
- scroll(win);
- win->cury--;
- } else
- return (ERR);
- }
- return (OK);
-}
diff --git a/lib/libocurses/insertln.c b/lib/libocurses/insertln.c
deleted file mode 100644
index 627640fe334..00000000000
--- a/lib/libocurses/insertln.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* $OpenBSD: insertln.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <string.h>
-
-#include "curses.h"
-
-/*
- * winsertln --
- * Do an insert-line on the window, leaving (cury, curx) unchanged.
- */
-int
-winsertln(win)
- register WINDOW *win;
-{
-
- register int y, i;
- register __LINE *temp;
-
-#ifdef DEBUG
- __CTRACE("insertln: (%0.2o)\n", win);
-#endif
- if (win->orig == NULL)
- temp = win->lines[win->maxy - 1];
- for (y = win->maxy - 1; y > win->cury; --y) {
- win->lines[y]->flags &= ~__ISPASTEOL;
- win->lines[y - 1]->flags &= ~__ISPASTEOL;
- if (win->orig == NULL)
- win->lines[y] = win->lines[y - 1];
- else
- (void)memcpy(win->lines[y]->line,
- win->lines[y - 1]->line,
- win->maxx * __LDATASIZE);
- __touchline(win, y, 0, win->maxx - 1, 0);
- }
- if (win->orig == NULL)
- win->lines[y] = temp;
- else
- temp = win->lines[y];
- for(i = 0; i < win->maxx; i++) {
- temp->line[i].ch = ' ';
- temp->line[i].attr = 0;
- }
- __touchline(win, y, 0, win->maxx - 1, 0);
- if (win->orig == NULL)
- __id_subwins(win);
- return (OK);
-}
diff --git a/lib/libocurses/longname.c b/lib/libocurses/longname.c
deleted file mode 100644
index ab679dc6e94..00000000000
--- a/lib/libocurses/longname.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* $OpenBSD: longname.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * longname --
- * Fill in "def" with the long name of the terminal.
- */
-char *
-longname(bp, def)
- register char *bp, *def;
-{
- register char *cp;
-
- while (*bp && *bp != ':' && *bp != '|')
- bp++;
- if (*bp == '|') {
- for (cp = def, ++bp; *bp && *bp != ':' && *bp != '|';)
- *cp++ = *bp++;
- *cp = '\0';
- }
- return (def);
-}
diff --git a/lib/libocurses/move.c b/lib/libocurses/move.c
deleted file mode 100644
index 3c6b54efce6..00000000000
--- a/lib/libocurses/move.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* $OpenBSD: move.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "curses.h"
-
-/*
- * wmove --
- * Moves the cursor to the given point.
- */
-int
-wmove(win, y, x)
- register WINDOW *win;
- register int y, x;
-{
-
-#ifdef DEBUG
- __CTRACE("wmove: (%d, %d)\n", y, x);
-#endif
- if (x < 0 || y < 0)
- return (ERR);
- if (x >= win->maxx || y >= win->maxy)
- return (ERR);
- win->curx = x;
- win->lines[win->cury]->flags &= ~__ISPASTEOL;
- win->cury = y;
- win->lines[y]->flags &= ~__ISPASTEOL;
- return (OK);
-}
diff --git a/lib/libocurses/mvwin.c b/lib/libocurses/mvwin.c
deleted file mode 100644
index cc12e4cc008..00000000000
--- a/lib/libocurses/mvwin.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* $OpenBSD: mvwin.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "curses.h"
-
-/*
- * mvwin --
- * Relocate the starting position of a window.
- */
-int
-mvwin(win, by, bx)
- register WINDOW *win;
- register int by, bx;
-{
- register WINDOW *orig;
- register int dy, dx;
-
- if (by + win->maxy > LINES || bx + win->maxx > COLS)
- return (ERR);
- dy = by - win->begy;
- dx = bx - win->begx;
- orig = win->orig;
- if (orig == NULL) {
- orig = win;
- do {
- win->begy += dy;
- win->begx += dx;
- __swflags(win);
- win = win->nextp;
- } while (win != orig);
- } else {
- if (by < orig->begy || win->maxy + dy > orig->maxy)
- return (ERR);
- if (bx < orig->begx || win->maxx + dx > orig->maxx)
- return (ERR);
- win->begy = by;
- win->begx = bx;
- __swflags(win);
- __set_subwin(orig, win);
- }
- __touchwin(win);
- return (OK);
-}
diff --git a/lib/libocurses/newwin.c b/lib/libocurses/newwin.c
deleted file mode 100644
index 3c4bb7be727..00000000000
--- a/lib/libocurses/newwin.c
+++ /dev/null
@@ -1,237 +0,0 @@
-/* $OpenBSD: newwin.c,v 1.6 2014/10/14 05:38:20 deraadt Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <stdlib.h>
-
-#include "curses.h"
-
-#undef nl /* Don't need it here, and it interferes. */
-
-static WINDOW *__makenew(int, int, int, int, int);
-
-void __set_subwin(WINDOW *, WINDOW *);
-
-/*
- * newwin --
- * Allocate space for and set up defaults for a new window.
- */
-WINDOW *
-newwin(nl, nc, by, bx)
- register int nl, nc, by, bx;
-{
- register WINDOW *win;
- register __LINE *lp;
- register int i, j;
- register __LDATA *sp;
-
- if (nl == 0)
- nl = LINES - by;
- if (nc == 0)
- nc = COLS - bx;
-
- if ((win = __makenew(nl, nc, by, bx, 0)) == NULL)
- return (NULL);
-
- win->nextp = win;
- win->ch_off = 0;
- win->orig = NULL;
-
-#ifdef DEBUG
- __CTRACE("newwin: win->ch_off = %d\n", win->ch_off);
-#endif
-
- for (i = 0; i < nl; i++) {
- lp = win->lines[i];
- lp->flags = 0;
- for (sp = lp->line, j = 0; j < nc; j++, sp++) {
- sp->ch = ' ';
- sp->attr = 0;
- }
- lp->hash = __hash((char *) lp->line, nc * __LDATASIZE);
- }
- return (win);
-}
-
-WINDOW *
-subwin(orig, nl, nc, by, bx)
- register WINDOW *orig;
- register int by, bx, nl, nc;
-{
- int i;
- __LINE *lp;
- register WINDOW *win;
-
- /* Make sure window fits inside the original one. */
-#ifdef DEBUG
- __CTRACE("subwin: (%0.2o, %d, %d, %d, %d)\n", orig, nl, nc, by, bx);
-#endif
- if (by < orig->begy || bx < orig->begx
- || by + nl > orig->maxy + orig->begy
- || bx + nc > orig->maxx + orig->begx)
- return (NULL);
- if (nl == 0)
- nl = orig->maxy + orig->begy - by;
- if (nc == 0)
- nc = orig->maxx + orig->begx - bx;
- if ((win = __makenew(nl, nc, by, bx, 1)) == NULL)
- return (NULL);
- win->nextp = orig->nextp;
- orig->nextp = win;
- win->orig = orig;
-
- /* Initialize flags here so that refresh can also use __set_subwin. */
- for (lp = win->lspace, i = 0; i < win->maxy; i++, lp++)
- lp->flags = 0;
- __set_subwin(orig, win);
- return (win);
-}
-
-/*
- * This code is shared with mvwin().
- */
-void
-__set_subwin(orig, win)
- register WINDOW *orig, *win;
-{
- int i;
- __LINE *lp, *olp;
-
- win->ch_off = win->begx - orig->begx;
- /* Point line pointers to line space. */
- for (lp = win->lspace, i = 0; i < win->maxy; i++, lp++) {
- win->lines[i] = lp;
- olp = orig->lines[i + win->begy];
- lp->line = &olp->line[win->begx];
- lp->firstchp = &olp->firstch;
- lp->lastchp = &olp->lastch;
- lp->hash = __hash((char *) lp->line, win->maxx * __LDATASIZE);
- }
-
-#ifdef DEBUG
- __CTRACE("__set_subwin: win->ch_off = %d\n", win->ch_off);
-#endif
-}
-
-/*
- * __makenew --
- * Set up a window buffer and returns a pointer to it.
- */
-static WINDOW *
-__makenew(nl, nc, by, bx, sub)
- register int by, bx, nl, nc;
- int sub;
-{
- register WINDOW *win;
- register __LINE *lp;
- int i;
-
-
-#ifdef DEBUG
- __CTRACE("makenew: (%d, %d, %d, %d)\n", nl, nc, by, bx);
-#endif
- if ((win = malloc(sizeof(*win))) == NULL)
- return (NULL);
-#ifdef DEBUG
- __CTRACE("makenew: nl = %d\n", nl);
-#endif
-
- /*
- * Set up line pointer array and line space.
- */
- if ((win->lines = reallocarray(NULL, nl, sizeof(__LINE *))) == NULL) {
- free(win);
- return NULL;
- }
- if ((win->lspace = reallocarray(NULL, nl, sizeof(__LINE))) == NULL) {
- free (win->lines);
- free (win);
- return NULL;
- }
-
- /* Don't allocate window and line space if it's a subwindow */
- if (!sub) {
- /*
- * Allocate window space in one chunk.
- */
- if ((win->wspace = reallocarray(NULL, nc,
- nl * sizeof(__LDATA))) == NULL) {
- free(win->lines);
- free(win->lspace);
- free(win);
- return NULL;
- }
-
- /*
- * Point line pointers to line space, and lines themselves into
- * window space.
- */
- for (lp = win->lspace, i = 0; i < nl; i++, lp++) {
- win->lines[i] = lp;
- lp->line = &win->wspace[i * nc];
- lp->firstchp = &lp->firstch;
- lp->lastchp = &lp->lastch;
- lp->firstch = 0;
- lp->lastch = 0;
- }
- }
-#ifdef DEBUG
- __CTRACE("makenew: nc = %d\n", nc);
-#endif
- win->cury = win->curx = 0;
- win->maxy = nl;
- win->maxx = nc;
-
- win->begy = by;
- win->begx = bx;
- win->flags = 0;
- __swflags(win);
-#ifdef DEBUG
- __CTRACE("makenew: win->flags = %0.2o\n", win->flags);
- __CTRACE("makenew: win->maxy = %d\n", win->maxy);
- __CTRACE("makenew: win->maxx = %d\n", win->maxx);
- __CTRACE("makenew: win->begy = %d\n", win->begy);
- __CTRACE("makenew: win->begx = %d\n", win->begx);
-#endif
- return (win);
-}
-
-void
-__swflags(win)
- register WINDOW *win;
-{
- win->flags &= ~(__ENDLINE | __FULLWIN | __SCROLLWIN | __LEAVEOK);
- if (win->begx + win->maxx == COLS) {
- win->flags |= __ENDLINE;
- if (win->begx == 0 && win->maxy == LINES && win->begy == 0)
- win->flags |= __FULLWIN;
- if (win->begy + win->maxy == LINES)
- win->flags |= __SCROLLWIN;
- }
-}
diff --git a/lib/libocurses/ocurses.3 b/lib/libocurses/ocurses.3
deleted file mode 100644
index 63644023f46..00000000000
--- a/lib/libocurses/ocurses.3
+++ /dev/null
@@ -1,270 +0,0 @@
-.\" $OpenBSD: ocurses.3,v 1.13 2011/09/03 22:59:07 jmc Exp $
-.\"
-.\" Copyright (c) 1985, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)curses.3 8.1 (Berkeley) 6/4/93
-.\"
-.Dd $Mdocdate: September 3 2011 $
-.Dt OCURSES 3
-.Os
-.Sh NAME
-.Nm ocurses
-.Nd screen functions with ``optimal'' cursor motion
-.Sh SYNOPSIS
-.Nm cc
-.Op Ar flags
-.Ar files
-.Fl locurses
-.Op Ar libraries
-.Sh DESCRIPTION
-These routines give the user a method of updating screens with reasonable
-optimization.
-They keep an image of the current screen,
-and the user sets up an image of a new one.
-Then
-.Fn refresh
-tells the routines to make the current screen look like the new one.
-In order to initialize the routines, the routine
-.Fn initscr
-must be called before any of the other routines that deal with windows and
-screens are used.
-The routine
-.Fn endwin
-should be called before exiting.
-.Sh FUNCTIONS
-.Bl -tag -width "subwin(win,lines,cols,begin_y,begin_x)" -compact
-.It addch(ch)
-add a character to
-.Em stdscr
-.It addstr(str)
-add a string to
-.Em stdscr
-.It box(win,vert,hor)
-draw a box around a window
-.It cbreak()
-set cbreak mode
-.It clear()
-clear
-.Em stdscr
-.It clearok(scr,boolf)
-set clear flag for
-.Em scr
-.It clrtobot()
-clear to bottom on
-.Em stdscr
-.It clrtoeol()
-clear to end of line on
-.Em stdscr
-.It delch()
-delete a character
-.It deleteln()
-delete a line
-.It delwin(win)
-delete
-.Em stdscr
-.It echo()
-set echo mode
-.It endwin()
-end window modes
-.It erase()
-erase
-.Em stdscr
-.It flusok(win,boolf)
-set flush-on-refresh flag for
-.Em win
-.It getch()
-get a char through
-.Em stdscr
-.It getcap(name)
-get terminal capability
-.Em name
-.It getstr(str)
-get a string through
-.Em stdscr
-.It gettmode()
-get tty modes
-.It getyx(win,y,x)
-get (y,x) co-ordinates
-.It inch()
-get char at current (y,x) co-ordinates
-.It initscr()
-initialize screens
-.It insch(c)
-insert a char
-.It insertln()
-insert a line
-.It leaveok(win,boolf)
-set leave flag for
-.Em stdscr
-.It longname(termbuf,name)
-get long name from
-.Em termbuf
-.It move(y,x)
-move to (y,x) on
-.Em stdscr
-.It mvcur(lasty,lastx,newy,newx)
-actually move cursor
-.It newwin(lines,cols,begin_y,begin_x)
-create a new window
-.It nl()
-set newline mapping
-.It nocbreak()
-unset cbreak mode
-.It noecho()
-unset echo mode
-.It nonl()
-unset newline mapping
-.It noraw()
-unset raw mode
-.It overlay(win1,win2)
-overlay win1 on win2
-.It overwrite(win1,win2)
-overwrite win1 on top of win2
-.It printw(fmt,arg1,arg2,...)
-printf on
-.Em stdscr
-.It raw()
-set raw mode
-.It refresh()
-make current screen look like
-.Em stdscr
-.It resetty()
-reset tty flags to stored value
-.It savetty()
-stored current tty flags
-.It scanw(fmt,arg1,arg2,...)
-scanf through
-.Em stdscr
-.It scroll(win)
-scroll
-.Em win
-one line
-.It scrollok(win,boolf)
-set scroll flag
-.It setterm(name)
-set term variables for name
-.It standend()
-end standout mode
-.It standout()
-start standout mode
-.It subwin(win,lines,cols,begin_y,begin_x)
-create a subwindow
-.It touchline(win,y,sx,ex)
-mark line
-.Em y
-.Em sx
-through
-.Em sy
-as changed
-.It touchoverlap(win1,win2)
-mark overlap of
-.Em win1
-on
-.Em win2
-as changed
-.It touchwin(win)
-\*(lqchange\*(rq all of
-.Em win
-.It unctrl(ch)
-printable version of
-.Em ch
-.It waddch(win,ch)
-add char to
-.Em win
-.It waddstr(win,str)
-add string to
-.Em win
-.It wclear(win)
-clear
-.Em win
-.It wclrtobot(win)
-clear to bottom of
-.Em win
-.It wclrtoeol(win)
-clear to end of line on
-.Em win
-.It wdelch(win)
-delete char from
-.Em win
-.It wdeleteln(win)
-delete line from
-.Em win
-.It werase(win)
-erase
-.Em win
-.It wgetch(win)
-get a char through
-.Em win
-.It wgetstr(win,str)
-get a string through
-.Em win
-.It winch(win)
-get char at current (y,x) in
-.Em win
-.It winsch(win,c)
-insert char into
-.Em win
-.It winsertln(win)
-insert line into
-.Em win
-.It wmove(win,y,x)
-set current (y,x) co-ordinates on
-.Em win
-.It wprintw(win,fmt,arg1,arg2,...)
-printf on
-.Em win
-.It wrefresh(win)
-make screen look like
-.Em win
-.It wscanw(win,fmt,arg1,arg2,...)
-scanf through
-.Em win
-.It wstandend(win)
-end standout mode on
-.Em win
-.It wstandout(win)
-start standout mode on
-.Em win
-.El
-.Sh SEE ALSO
-.Xr ioctl 2 ,
-.Xr getenv 3 ,
-.Xr termcap 3 ,
-.Xr tty 4 ,
-.Xr termcap 5
-.Rs
-.%T Screen Updating and Cursor Movement Optimization: A Library Package
-.%A Ken Arnold
-.Re
-.Sh HISTORY
-The
-.Nm
-package appeared in
-.Bx 4.0 .
-.Sh AUTHORS
-.An Ken Arnold
diff --git a/lib/libocurses/otermcap.3 b/lib/libocurses/otermcap.3
deleted file mode 100644
index c2e62dfd828..00000000000
--- a/lib/libocurses/otermcap.3
+++ /dev/null
@@ -1,270 +0,0 @@
-.\" $OpenBSD: otermcap.3,v 1.9 2013/12/05 07:41:40 jmc Exp $
-.\" $NetBSD: termcap.3,v 1.5 1995/06/05 19:45:48 pk Exp $
-.\"
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)termcap.3 8.2 (Berkeley) 12/11/93
-.\"
-.Dd $Mdocdate: December 5 2013 $
-.Dt TERMCAP 3
-.Os
-.Sh NAME
-.Nm tgetent ,
-.Nm tgetnum ,
-.Nm tgetflag ,
-.Nm tgetstr ,
-.Nm tgoto ,
-.Nm tputs
-.Nd terminal independent operation routines
-.Sh SYNOPSIS
-.Vt char PC;
-.Vt char *BC;
-.Vt char *UP;
-.Vt short ospeed;
-.Ft int
-.Fn tgetent "char *bp" "char *name"
-.Ft int
-.Fn tgetnum "char *id"
-.Ft int
-.Fn tgetflag "char *id"
-.Ft char *
-.Fn tgetstr "char *id" "char **area"
-.Ft char *
-.Fn tgoto "char *cm" destcol destline
-.Ft void
-.Fn tputs "register char *cp" "int affcnt" "int (*outc)()"
-.Sh DESCRIPTION
-These functions extract and use capabilities from a terminal capability data
-base, usually
-.Pa /usr/share/misc/termcap ,
-the format of which is described in
-.Xr termcap 5 .
-This version of these routines has been deprecated in favor of
-the emulation provided by
-.Xr termcap 3 .
-This library is provided solely for old applications that
-require behavior that is not emulated.
-.Pp
-The
-.Fn tgetent
-function
-extracts the entry for terminal
-.Fa name
-into the buffer at
-.Fa bp .
-The
-.Fa bp
-argument
-should be a character buffer of size
-1024 and must be retained through all subsequent calls to
-.Fn tgetnum ,
-.Fn tgetflag ,
-and
-.Fn tgetstr .
-As an extension
-.Fn tgetent
-can be passed NULL
-for the
-.Fa bp
-argument, in which case an internal buffer will be used.
-If repeated calls to
-.Fn tgetent
-are made with a NULL
-.Fa bp
-argument, some memory will be leaked on each call subsequent
-to the first.
-The
-.Fn tgetent
-function
-returns \-1 if none of the
-.Nm termcap
-database files could be opened,
-0 if the terminal name given does not have an entry,
-and 1 if all goes well.
-It will look in the environment for a
-.Ev TERMCAP
-variable.
-If found, and the value does not begin with a slash,
-and the terminal type
-.Fa name
-is the same as the environment string
-.Ev TERM ,
-the
-.Ev TERMCAP
-string is used instead of reading a
-.Nm termcap
-file.
-If it does begin with a slash, the string is used as a path name
-of the
-.Nm termcap
-file to search.
-If
-.Ev TERMCAP
-does not begin with a slash and
-.Fa name
-is different from
-.Ev TERM ,
-.Fn tgetent
-searches the files
-.Pa $HOME/.termcap
-and
-.Pa /usr/share/misc/termcap ,
-in that order, unless the environment variable
-.Ev TERMPATH
-exists,
-in which case it specifies a list of file pathnames
-(separated by spaces or colons) to be searched instead.
-Whenever multiple files are searched and a
-.Sy tc
-field occurs in the requested entry, the entry it names must be found
-in the same file or one of the succeeding files.
-This can speed up entry into programs that call
-.Fn tgetent ,
-as well as help debug new terminal descriptions
-or make one for your terminal if you can't write the file
-.Pa /usr/share/misc/termcap .
-.Pp
-The
-.Fn tgetnum
-function
-gets the numeric value of capability
-.Fa id ,
-returning \-1 if it is not given for the terminal.
-The
-.Fn tgetflag
-function
-returns 1 if the specified capability is present in
-the terminal's entry, 0 if it is not.
-The
-.Fn tgetstr
-function
-returns the string value of the capability
-.Fa id ,
-places it in the buffer at
-.Fa area ,
-and advances the
-.Fa area
-pointer.
-It decodes the abbreviations for this field described in
-.Xr termcap 5 ,
-except for cursor addressing and padding information.
-The
-.Fn tgetstr
-function
-returns
-.Dv NULL
-if the capability was not found.
-.Pp
-The
-.Fn tgoto
-function
-returns a cursor addressing string decoded from
-.Fa cm
-to go to column
-.Fa destcol
-in line
-.Fa destline .
-It uses the external variables
-.Va UP
-(from the
-.Sy up
-capability)
-and
-.Va BC
-(if
-.Sy bc
-is given rather than
-.Sy bs )
-if necessary to avoid placing
-.Sy \en ,
-.Sy ^D
-or
-.Sy ^@
-in
-the returned string.
-(Programs which call
-.Fn tgoto
-should be sure to turn off the
-.Dv XTABS
-bit(s),
-since
-.Fn tgoto
-may now output a tab.
-Note that programs using termcap should in general turn off
-.Dv XTABS
-anyway since some terminals use control-I for other functions,
-such as nondestructive space.)
-If a
-.Sy %
-sequence is given which is not understood, then
-.Fn tgoto
-returns
-.Pq Dv OOPS .
-.Pp
-The
-.Fn tputs
-function
-decodes the leading padding information of the string
-.Fa cp ;
-.Fa affcnt
-gives the number of lines affected by the operation, or 1 if this is
-not applicable,
-.Fa outc
-is a routine which is called with each character in turn.
-The external variable
-.Va ospeed
-should contain the output speed of the terminal as encoded by
-.Xr tty 4 .
-The external variable
-.Va PC
-should contain a pad character to be used (from the
-.Sy pc
-capability)
-if a null
-.Pq Sy ^@
-is inappropriate.
-.Sh FILES
-.Bl -tag -width /usr/share/misc/termcap -compact
-.It Pa /usr/lib/libotermcap.a
-.Fl l Ar lotermcap
-library
-.It Pa /usr/share/misc/termcap
-standard terminal capability database
-.It Pa $HOME/.termcap
-user's terminal capability database
-.El
-.Sh SEE ALSO
-.Xr ex 1 ,
-.Xr curses 3 ,
-.Xr termcap 3 ,
-.Xr termcap 5
-.Sh HISTORY
-The
-.Nm
-functions appeared in
-.Bx 4.0 .
diff --git a/lib/libocurses/overlay.c b/lib/libocurses/overlay.c
deleted file mode 100644
index 6e0f473c616..00000000000
--- a/lib/libocurses/overlay.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* $OpenBSD: overlay.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <ctype.h>
-
-#include "curses.h"
-
-/*
- * overlay --
- * Writes win1 on win2 non-destructively.
- */
-int
-overlay(win1, win2)
- register WINDOW *win1, *win2;
-{
-
- register int x, y, y1, y2, endy, endx, starty, startx;
- register __LDATA *sp, *end;
-
-#ifdef DEBUG
- __CTRACE("overlay: (%0.2o, %0.2o);\n", win1, win2);
-#endif
- starty = max(win1->begy, win2->begy);
- startx = max(win1->begx, win2->begx);
- endy = min(win1->maxy + win1->begy, win2->maxy + win2->begx);
- endx = min(win1->maxx + win1->begx, win2->maxx + win2->begx);
-#ifdef DEBUG
- __CTRACE("overlay: from (%d,%d) to (%d,%d)\n",
- starty, startx, endy, endx);
-#endif
- if (starty >= endy || startx >= endx)
- return (OK);
- y1 = starty - win1->begy;
- y2 = starty - win2->begy;
- for (y = starty; y < endy; y++, y1++, y2++) {
- end = &win1->lines[y1]->line[endx - win1->begx];
- x = startx - win2->begx;
- for (sp = &win1->lines[y1]->line[startx - win1->begx];
- sp < end; sp++) {
- if (!isspace(sp->ch)) {
- wmove(win2, y2, x);
- __waddch(win2, sp);
- }
- x++;
- }
- }
- return (OK);
-}
diff --git a/lib/libocurses/overwrite.c b/lib/libocurses/overwrite.c
deleted file mode 100644
index 7441098b31d..00000000000
--- a/lib/libocurses/overwrite.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* $OpenBSD: overwrite.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <ctype.h>
-#include <string.h>
-
-#include "curses.h"
-
-/*
- * overwrite --
- * Writes win1 on win2 destructively.
- */
-int
-overwrite(win1, win2)
- register WINDOW *win1, *win2;
-{
- register int x, y, endy, endx, starty, startx;
-
-#ifdef DEBUG
- __CTRACE("overwrite: (%0.2o, %0.2o);\n", win1, win2);
-#endif
- starty = max(win1->begy, win2->begy);
- startx = max(win1->begx, win2->begx);
- endy = min(win1->maxy + win1->begy, win2->maxy + win2->begx);
- endx = min(win1->maxx + win1->begx, win2->maxx + win2->begx);
- if (starty >= endy || startx >= endx)
- return (OK);
-#ifdef DEBUG
- __CTRACE("overwrite: from (%d, %d) to (%d, %d)\n",
- starty, startx, endy, endx);
-#endif
- x = endx - startx;
- for (y = starty; y < endy; y++) {
- (void)memcpy(
- &win2->lines[y - win2->begy]->line[startx - win2->begx],
- &win1->lines[y - win1->begy]->line[startx - win1->begx],
- x * __LDATASIZE);
- __touchline(win2, y, startx - win2->begx, endx - win2->begx,
- 0);
- }
- return (OK);
-}
diff --git a/lib/libocurses/pathnames.h b/lib/libocurses/pathnames.h
deleted file mode 100644
index db8e856cc9f..00000000000
--- a/lib/libocurses/pathnames.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* $OpenBSD: pathnames.h,v 1.5 2003/06/02 20:18:42 millert Exp $ */
-/* $NetBSD: pathnames.h,v 1.3 1995/02/27 10:18:43 cgd Exp $ */
-
-/*
- * Copyright (c) 1989, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)pathnames.h 8.1 (Berkeley) 6/4/93
- */
-
-#define _PATH_TERMCAP "/usr/share/misc/termcap"
-#define _PATH_DEF (".termcap " _PATH_TERMCAP)
diff --git a/lib/libocurses/printw.c b/lib/libocurses/printw.c
deleted file mode 100644
index 712b2c06174..00000000000
--- a/lib/libocurses/printw.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/* $OpenBSD: printw.c,v 1.5 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <stdarg.h>
-
-#include "curses.h"
-
-/*
- * printw and friends.
- */
-
-static int __winwrite(void *, const char *, int);
-
-/*
- * printw --
- * Printf on the standard screen.
- */
-int
-printw(const char *fmt, ...)
-{
- va_list ap;
- int ret;
-
- va_start(ap, fmt);
- ret = vwprintw(stdscr, fmt, ap);
- va_end(ap);
- return (ret);
-}
-
-/*
- * wprintw --
- * Printf on the given window.
- */
-int
-wprintw(WINDOW * win, const char *fmt, ...)
-{
- va_list ap;
- int ret;
-
- va_start(ap, fmt);
- ret = vwprintw(win, fmt, ap);
- va_end(ap);
- return (ret);
-}
-
-/*
- * mvprintw, mvwprintw --
- * Implement the mvprintw commands. Due to the variable number of
- * arguments, they cannot be macros. Sigh....
- */
-int
-mvprintw(register int y, register int x, const char *fmt, ...)
-{
- va_list ap;
- int ret;
-
- va_start(ap, fmt);
- if (move(y, x) != OK)
- return (ERR);
- ret = vwprintw(stdscr, fmt, ap);
- va_end(ap);
- return (ret);
-}
-
-int
-mvwprintw(register WINDOW * win, register int y, register int x,
- const char *fmt, ...)
-{
- va_list ap;
- int ret;
-
- va_start(ap, fmt);
- if (wmove(win, y, x) != OK)
- return (ERR);
-
- ret = vwprintw(win, fmt, ap);
- va_end(ap);
- return (ret);
-}
-
-/*
- * Internal write-buffer-to-window function.
- */
-static int
-__winwrite(cookie, buf, n)
- void *cookie;
- register const char *buf;
- int n;
-{
- register WINDOW *win;
- register int c;
-
- for (c = n, win = cookie; --c >= 0;)
- if (waddch(win, *buf++) == ERR)
- return (-1);
- return (n);
-}
-
-/*
- * vwprintw --
- * This routine actually executes the printf and adds it to the window.
- */
-int
-vwprintw(win, fmt, ap)
- WINDOW *win;
- const char *fmt;
- va_list ap;
-{
- FILE *f;
-
- if ((f = funopen(win, NULL, __winwrite, NULL, NULL)) == NULL)
- return (ERR);
- (void)vfprintf(f, fmt, ap);
- return (fclose(f) ? ERR : OK);
-}
diff --git a/lib/libocurses/putchar.c b/lib/libocurses/putchar.c
deleted file mode 100644
index 09c9eb5e224..00000000000
--- a/lib/libocurses/putchar.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* $OpenBSD: putchar.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "curses.h"
-
-void
-__cputchar(ch)
- int ch;
-{
-
-#ifdef DEBUG
- __CTRACE("__cputchar: %s\n", unctrl(ch));
-#endif
- (void)putchar(ch);
-}
diff --git a/lib/libocurses/refresh.c b/lib/libocurses/refresh.c
deleted file mode 100644
index bf64c0525c2..00000000000
--- a/lib/libocurses/refresh.c
+++ /dev/null
@@ -1,821 +0,0 @@
-/* $OpenBSD: refresh.c,v 1.6 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <stdlib.h>
-#include <string.h>
-
-#include "curses.h"
-
-static int curwin;
-static short ly, lx;
-
-static void domvcur(int, int, int, int);
-static int makech(WINDOW *, int);
-static void quickch(WINDOW *);
-static void scrolln(WINDOW *, int, int, int, int, int);
-
-/*
- * wrefresh --
- * Make the current screen look like "win" over the area coverd by
- * win.
- */
-int
-wrefresh(win)
- register WINDOW *win;
-{
- register __LINE *wlp;
- register int retval;
- register short wy;
- int dnum;
-
- /* Initialize loop parameters. */
- ly = curscr->cury;
- lx = curscr->curx;
- wy = 0;
- curwin = (win == curscr);
-
- if (!curwin)
- for (wy = 0; wy < win->maxy; wy++) {
- wlp = win->lines[wy];
- if (wlp->flags & __ISDIRTY)
- wlp->hash = __hash((char *)wlp->line,
- win->maxx * __LDATASIZE);
- }
-
- if (win->flags & __CLEAROK || curscr->flags & __CLEAROK || curwin) {
- if ((win->flags & __FULLWIN) || curscr->flags & __CLEAROK) {
- tputs(CL, 0, __cputchar);
- ly = 0;
- lx = 0;
- if (!curwin) {
- curscr->flags &= ~__CLEAROK;
- curscr->cury = 0;
- curscr->curx = 0;
- werase(curscr);
- }
- __touchwin(win);
- }
- win->flags &= ~__CLEAROK;
- }
- if (!CA) {
- if (win->curx != 0)
- putchar('\n');
- if (!curwin)
- werase(curscr);
- }
-#ifdef DEBUG
- __CTRACE("wrefresh: (%0.2o): curwin = %d\n", win, curwin);
- __CTRACE("wrefresh: \tfirstch\tlastch\n");
-#endif
-
-#ifndef NOQCH
- if ((win->flags & __FULLWIN) && !curwin) {
- /*
- * Invoke quickch() only if more than a quarter of the lines
- * in the window are dirty.
- */
- for (wy = 0, dnum = 0; wy < win->maxy; wy++)
- if (win->lines[wy]->flags & (__ISDIRTY | __FORCEPAINT))
- dnum++;
- if (!__noqch && dnum > (int) win->maxy / 4)
- quickch(win);
- }
-#endif
-
-#ifdef DEBUG
-{ int i, j;
- __CTRACE("#####################################\n");
- for (i = 0; i < curscr->maxy; i++) {
- __CTRACE("C: %d:", i);
- __CTRACE(" 0x%x \n", curscr->lines[i]->hash);
- for (j = 0; j < curscr->maxx; j++)
- __CTRACE("%c",
- curscr->lines[i]->line[j].ch);
- __CTRACE("\n");
- for (j = 0; j < curscr->maxx; j++)
- __CTRACE("%x",
- curscr->lines[i]->line[j].attr);
- __CTRACE("\n");
- __CTRACE("W: %d:", i);
- __CTRACE(" 0x%x \n", win->lines[i]->hash);
- __CTRACE(" 0x%x ", win->lines[i]->flags);
- for (j = 0; j < win->maxx; j++)
- __CTRACE("%c",
- win->lines[i]->line[j].ch);
- __CTRACE("\n");
- for (j = 0; j < win->maxx; j++)
- __CTRACE("%x",
- win->lines[i]->line[j].attr);
- __CTRACE("\n");
- }
-}
-#endif /* DEBUG */
-
- for (wy = 0; wy < win->maxy; wy++) {
-#ifdef DEBUG
- __CTRACE("%d\t%d\t%d\n",
- wy, *win->lines[wy]->firstchp, *win->lines[wy]->lastchp);
-#endif
- if (!curwin)
- curscr->lines[wy]->hash = win->lines[wy]->hash;
- if (win->lines[wy]->flags & (__ISDIRTY | __FORCEPAINT)) {
- if (makech(win, wy) == ERR)
- return (ERR);
- else {
- if (*win->lines[wy]->firstchp >= win->ch_off)
- *win->lines[wy]->firstchp = win->maxx +
- win->ch_off;
- if (*win->lines[wy]->lastchp < win->maxx +
- win->ch_off)
- *win->lines[wy]->lastchp = win->ch_off;
- if (*win->lines[wy]->lastchp <
- *win->lines[wy]->firstchp) {
-#ifdef DEBUG
- __CTRACE("wrefresh: line %d notdirty \n", wy);
-#endif
- win->lines[wy]->flags &= ~__ISDIRTY;
- }
- }
-
- }
-#ifdef DEBUG
- __CTRACE("\t%d\t%d\n", *win->lines[wy]->firstchp,
- *win->lines[wy]->lastchp);
-#endif
- }
-
-#ifdef DEBUG
- __CTRACE("refresh: ly=%d, lx=%d\n", ly, lx);
-#endif
-
- if (win == curscr)
- domvcur(ly, lx, win->cury, win->curx);
- else {
- if (win->flags & __LEAVEOK) {
- curscr->cury = ly;
- curscr->curx = lx;
- ly -= win->begy;
- lx -= win->begx;
- if (ly >= 0 && ly < win->maxy && lx >= 0 &&
- lx < win->maxx) {
- win->cury = ly;
- win->curx = lx;
- } else
- win->cury = win->curx = 0;
- } else {
- domvcur(ly, lx, win->cury + win->begy,
- win->curx + win->begx);
- curscr->cury = win->cury + win->begy;
- curscr->curx = win->curx + win->begx;
- }
- }
- retval = OK;
-
- (void)fflush(stdout);
- return (retval);
-}
-
-/*
- * makech --
- * Make a change on the screen.
- */
-static int
-makech(win, wy)
- register WINDOW *win;
- int wy;
-{
- static __LDATA blank = {' ', 0};
- __LDATA *nsp, *csp, *cp, *cep;
- u_int force;
- int clsp, nlsp; /* Last space in lines. */
- int lch, wx, y;
- char *ce;
-
- /* Is the cursor still on the end of the last line? */
- if (wy > 0 && win->lines[wy - 1]->flags & __ISPASTEOL) {
- domvcur(ly, lx, ly + 1, 0);
- ly++;
- lx = 0;
- }
- wx = *win->lines[wy]->firstchp - win->ch_off;
- if (wx < 0)
- wx = 0;
- else if (wx >= win->maxx)
- return (OK);
- lch = *win->lines[wy]->lastchp - win->ch_off;
- if (lch < 0)
- return (OK);
- else if (lch >= (int) win->maxx)
- lch = win->maxx - 1;
- y = wy + win->begy;
-
- if (curwin)
- csp = &blank;
- else
- csp = &curscr->lines[wy + win->begy]->line[wx + win->begx];
-
- nsp = &win->lines[wy]->line[wx];
- force = win->lines[wy]->flags & __FORCEPAINT;
- win->lines[wy]->flags &= ~__FORCEPAINT;
- if (CE && !curwin) {
- for (cp = &win->lines[wy]->line[win->maxx - 1];
- cp->ch == ' ' && cp->attr == 0; cp--)
- if (cp <= win->lines[wy]->line)
- break;
- nlsp = cp - win->lines[wy]->line;
- }
- if (!curwin)
- ce = CE;
- else
- ce = NULL;
-
- if (force) {
- if (CM)
- tputs(tgoto(CM, lx, ly), 0, __cputchar);
- else {
- tputs(HO, 0, __cputchar);
- __mvcur(0, 0, ly, lx, 1);
- }
- }
-
- while (wx <= lch) {
- if (!force && memcmp(nsp, csp, sizeof(__LDATA)) == 0) {
- if (wx <= lch) {
- while (wx <= lch &&
- memcmp(nsp, csp, sizeof(__LDATA)) == 0) {
- nsp++;
- if (!curwin)
- ++csp;
- ++wx;
- }
- continue;
- }
- break;
- }
- domvcur(ly, lx, y, wx + win->begx);
-
-#ifdef DEBUG
- __CTRACE("makech: 1: wx = %d, ly= %d, lx = %d, newy = %d, newx = %d, force =%d\n",
- wx, ly, lx, y, wx + win->begx, force);
-#endif
- ly = y;
- lx = wx + win->begx;
- while ((force || memcmp(nsp, csp, sizeof(__LDATA)) != 0)
- && wx <= lch) {
-
- if (ce != NULL &&
- win->maxx + win->begx == curscr->maxx &&
- wx >= nlsp && nsp->ch == ' ' && nsp->attr == 0) {
- /* Check for clear to end-of-line. */
- cep = &curscr->lines[wy]->line[win->maxx - 1];
- while (cep->ch == ' ' && cep->attr == 0)
- if (cep-- <= csp)
- break;
- clsp = cep - curscr->lines[wy]->line -
- win->begx * __LDATASIZE;
-#ifdef DEBUG
- __CTRACE("makech: clsp = %d, nlsp = %d\n", clsp, nlsp);
-#endif
- if ((clsp - nlsp >= strlen(CE)
- && clsp < win->maxx * __LDATASIZE) ||
- wy == win->maxy - 1) {
- if (curscr->flags & __WSTANDOUT) {
- tputs(SE, 0, __cputchar);
- curscr->flags &= ~__WSTANDOUT;
- }
- tputs(CE, 0, __cputchar);
- lx = wx + win->begx;
- while (wx++ <= clsp) {
- csp->ch = ' ';
- csp->attr = 0;
- csp++;
- }
- return (OK);
- }
- ce = NULL;
- }
-
- /*
- * Enter/exit standout mode as appropriate.
- * XXX
- * Should use UC if SO/SE not available.
- */
- if (nsp->attr & __STANDOUT) {
- if (!(curscr->flags & __WSTANDOUT) &&
- SO != NULL && SE != NULL) {
- tputs(SO, 0, __cputchar);
- curscr->flags |= __WSTANDOUT;
- }
- } else
- if (curscr->flags & __WSTANDOUT &&
- SE != NULL) {
- tputs(SE, 0, __cputchar);
- curscr->flags &= ~__WSTANDOUT;
- }
-
- wx++;
- if (wx >= win->maxx && wy == win->maxy - 1 && !curwin)
- if (win->flags & __SCROLLOK) {
- if (curscr->flags & __WSTANDOUT
- && win->flags & __ENDLINE)
- if (!MS) {
- tputs(SE, 0,
- __cputchar);
- curscr->flags &=
- ~__WSTANDOUT;
- }
- if (!(win->flags & __SCROLLWIN)) {
- if (!curwin) {
- csp->attr = nsp->attr;
- putchar(csp->ch = nsp->ch);
- } else
- putchar(nsp->ch);
- }
- if (wx + win->begx < curscr->maxx) {
- domvcur(ly, wx + win->begx,
- win->begy + win->maxy - 1,
- win->begx + win->maxx - 1);
- }
- ly = win->begy + win->maxy - 1;
- lx = win->begx + win->maxx - 1;
- return (OK);
- }
- if (wx < win->maxx || wy < win->maxy - 1 ||
- !(win->flags & __SCROLLWIN)) {
- if (!curwin) {
- csp->attr = nsp->attr;
- putchar(csp->ch = nsp->ch);
- csp++;
- } else
- putchar(nsp->ch);
- }
-#ifdef DEBUG
- __CTRACE("makech: putchar(%c)\n", nsp->ch & 0177);
-#endif
- if (UC && (nsp->attr & __STANDOUT)) {
- putchar('\b');
- tputs(UC, 0, __cputchar);
- }
- nsp++;
-#ifdef DEBUG
- __CTRACE("makech: 2: wx = %d, lx = %d\n", wx, lx);
-#endif
- }
- if (lx == wx + win->begx) /* If no change. */
- break;
- lx = wx + win->begx;
- if (lx >= COLS && AM)
- lx = COLS - 1;
- else if (wx >= win->maxx) {
- domvcur(ly, lx, ly, win->maxx + win->begx - 1);
- lx = win->maxx + win->begx - 1;
- }
-
-#ifdef DEBUG
- __CTRACE("makech: 3: wx = %d, lx = %d\n", wx, lx);
-#endif
- }
-
- /* Don't leave the screen in standout mode. */
- if (curscr->flags & __WSTANDOUT) {
- tputs(SE, 0, __cputchar);
- curscr->flags &= ~__WSTANDOUT;
- }
- return (OK);
-}
-
-/*
- * domvcur --
- * Do a mvcur, leaving standout mode if necessary.
- */
-static void
-domvcur(oy, ox, ny, nx)
- int oy, ox, ny, nx;
-{
- if (curscr->flags & __WSTANDOUT && !MS) {
- tputs(SE, 0, __cputchar);
- curscr->flags &= ~__WSTANDOUT;
- }
-
- __mvcur(oy, ox, ny, nx, 1);
-}
-
-/*
- * Quickch() attempts to detect a pattern in the change of the window
- * in order to optimize the change, e.g., scroll n lines as opposed to
- * repainting the screen line by line.
- */
-
-static void
-quickch(win)
- WINDOW *win;
-{
-#define THRESH (int) win->maxy / 4
-
- register __LINE *clp, *tmp1, *tmp2;
- register int bsize, curs, curw, starts, startw, i, j;
- int n, target, cur_period, bot, top, sc_region;
- __LDATA buf[1024];
- u_int blank_hash;
-
- /*
- * Find how many lines from the top of the screen are unchanged.
- */
- for (top = 0; top < win->maxy; top++)
- if (win->lines[top]->flags & __FORCEPAINT ||
- win->lines[top]->hash != curscr->lines[top]->hash
- || memcmp(win->lines[top]->line,
- curscr->lines[top]->line,
- win->maxx * __LDATASIZE) != 0)
- break;
- else
- win->lines[top]->flags &= ~__ISDIRTY;
- /*
- * Find how many lines from bottom of screen are unchanged.
- */
- for (bot = win->maxy - 1; bot >= 0; bot--)
- if (win->lines[bot]->flags & __FORCEPAINT ||
- win->lines[bot]->hash != curscr->lines[bot]->hash
- || memcmp(win->lines[bot]->line,
- curscr->lines[bot]->line,
- win->maxx * __LDATASIZE) != 0)
- break;
- else
- win->lines[bot]->flags &= ~__ISDIRTY;
-
-#ifdef NO_JERKINESS
- /*
- * If we have a bottom unchanged region return. Scrolling the
- * bottom region up and then back down causes a screen jitter.
- * This will increase the number of characters sent to the screen
- * but it looks better.
- */
- if (bot < win->maxy - 1)
- return;
-#endif /* NO_JERKINESS */
-
- /*
- * Search for the largest block of text not changed.
- * Invariants of the loop:
- * - Startw is the index of the beginning of the examined block in win.
- * - Starts is the index of the beginning of the examined block in
- * curscr.
- * - Curs is the index of one past the end of the exmined block in win.
- * - Curw is the index of one past the end of the exmined block in
- * curscr.
- * - bsize is the current size of the examined block.
- */
- for (bsize = bot - top; bsize >= THRESH; bsize--) {
- for (startw = top; startw <= bot - bsize; startw++)
- for (starts = top; starts <= bot - bsize;
- starts++) {
- for (curw = startw, curs = starts;
- curs < starts + bsize; curw++, curs++)
- if (win->lines[curw]->flags &
- __FORCEPAINT ||
- (win->lines[curw]->hash !=
- curscr->lines[curs]->hash ||
- memcmp(win->lines[curw]->line,
- curscr->lines[curs]->line,
- win->maxx * __LDATASIZE) != 0))
- break;
- if (curs == starts + bsize)
- goto done;
- }
- }
- done:
- /* Did not find anything */
- if (bsize < THRESH)
- return;
-
-#ifdef DEBUG
- __CTRACE("quickch:bsize=%d,starts=%d,startw=%d,curw=%d,curs=%d,top=%d,bot=%d\n",
- bsize, starts, startw, curw, curs, top, bot);
-#endif
-
- /*
- * Make sure that there is no overlap between the bottom and top
- * regions and the middle scrolled block.
- */
- if (bot < curs)
- bot = curs - 1;
- if (top > starts)
- top = starts;
-
- n = startw - starts;
-
-#ifdef DEBUG
- __CTRACE("#####################################\n");
- for (i = 0; i < curscr->maxy; i++) {
- __CTRACE("C: %d:", i);
- __CTRACE(" 0x%x \n", curscr->lines[i]->hash);
- for (j = 0; j < curscr->maxx; j++)
- __CTRACE("%c",
- curscr->lines[i]->line[j].ch);
- __CTRACE("\n");
- for (j = 0; j < curscr->maxx; j++)
- __CTRACE("%x",
- curscr->lines[i]->line[j].attr);
- __CTRACE("\n");
- __CTRACE("W: %d:", i);
- __CTRACE(" 0x%x \n", win->lines[i]->hash);
- __CTRACE(" 0x%x ", win->lines[i]->flags);
- for (j = 0; j < win->maxx; j++)
- __CTRACE("%c",
- win->lines[i]->line[j].ch);
- __CTRACE("\n");
- for (j = 0; j < win->maxx; j++)
- __CTRACE("%x",
- win->lines[i]->line[j].attr);
- __CTRACE("\n");
- }
-#endif
-
- /* So we don't have to call __hash() each time */
- for (i = 0; i < win->maxx; i++) {
- buf[i].ch = ' ';
- buf[i].attr = 0;
- }
- blank_hash = __hash((char *) buf, win->maxx * __LDATASIZE);
-
- /*
- * Perform the rotation to maintain the consistency of curscr.
- * This is hairy since we are doing an *in place* rotation.
- * Invariants of the loop:
- * - I is the index of the current line.
- * - Target is the index of the target of line i.
- * - Tmp1 points to current line (i).
- * - Tmp2 and points to target line (target);
- * - Cur_period is the index of the end of the current period.
- * (see below).
- *
- * There are 2 major issues here that make this rotation non-trivial:
- * 1. Scrolling in a scrolling region bounded by the top
- * and bottom regions determined (whose size is sc_region).
- * 2. As a result of the use of the mod function, there may be a
- * period introduced, i.e., 2 maps to 4, 4 to 6, n-2 to 0, and
- * 0 to 2, which then causes all odd lines not to be rotated.
- * To remedy this, an index of the end ( = beginning) of the
- * current 'period' is kept, cur_period, and when it is reached,
- * the next period is started from cur_period + 1 which is
- * guaranteed not to have been reached since that would mean that
- * all records would have been reached. (think about it...).
- *
- * Lines in the rotation can have 3 attributes which are marked on the
- * line so that curscr is consistent with the visual screen.
- * 1. Not dirty -- lines inside the scrolled block, top region or
- * bottom region.
- * 2. Blank lines -- lines in the differential of the scrolling
- * region adjacent to top and bot regions
- * depending on scrolling direction.
- * 3. Dirty line -- all other lines are marked dirty.
- */
- sc_region = bot - top + 1;
- i = top;
- tmp1 = curscr->lines[top];
- cur_period = top;
- for (j = top; j <= bot; j++) {
- target = (i - top + n + sc_region) % sc_region + top;
- tmp2 = curscr->lines[target];
- curscr->lines[target] = tmp1;
- /* Mark block as clean and blank out scrolled lines. */
- clp = curscr->lines[target];
-#ifdef DEBUG
- __CTRACE("quickch: n=%d startw=%d curw=%d i = %d target=%d ",
- n, startw, curw, i, target);
-#endif
- if ((target >= startw && target < curw) || target < top
- || target > bot) {
-#ifdef DEBUG
- __CTRACE("-- notdirty");
-#endif
- win->lines[target]->flags &= ~__ISDIRTY;
- } else if ((n > 0 && target >= top && target < top + n) ||
- (n < 0 && target <= bot && target > bot + n)) {
- if (clp->hash != blank_hash || memcmp(clp->line,
- buf, win->maxx * __LDATASIZE) !=0) {
- (void)memcpy(clp->line, buf,
- win->maxx * __LDATASIZE);
-#ifdef DEBUG
- __CTRACE("-- blanked out: dirty");
-#endif
- clp->hash = blank_hash;
- __touchline(win, target, 0, win->maxx - 1, 0);
- } else {
- __touchline(win, target, 0, win->maxx - 1, 0);
-#ifdef DEBUG
- __CTRACE(" -- blank line already: dirty");
-#endif
- }
- } else {
-#ifdef DEBUG
- __CTRACE(" -- dirty");
-#endif
- __touchline(win, target, 0, win->maxx - 1, 0);
- }
-#ifdef DEBUG
- __CTRACE("\n");
-#endif
- if (target == cur_period) {
- i = target + 1;
- tmp1 = curscr->lines[i];
- cur_period = i;
- } else {
- tmp1 = tmp2;
- i = target;
- }
- }
-#ifdef DEBUG
- __CTRACE("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");
- for (i = 0; i < curscr->maxy; i++) {
- __CTRACE("C: %d:", i);
- for (j = 0; j < curscr->maxx; j++)
- __CTRACE("%c",
- curscr->lines[i]->line[j].ch);
- __CTRACE("\n");
- __CTRACE("W: %d:", i);
- for (j = 0; j < win->maxx; j++)
- __CTRACE("%c", win->lines[i]->line[j].ch);
- __CTRACE("\n");
- }
-#endif
- if (n != 0) {
- WINDOW *wp;
- scrolln(win, starts, startw, curs, bot, top);
- /*
- * Need to repoint any subwindow lines to the rotated
- * line structured.
- */
- for (wp = curscr->nextp; wp != curscr; wp = wp->nextp)
- __set_subwin(wp->orig, wp);
- }
-}
-
-/*
- * scrolln --
- * Scroll n lines, where n is starts - startw.
- */
-static void
-scrolln(win, starts, startw, curs, bot, top)
- WINDOW *win;
- int starts, startw, curs, bot, top;
-{
- int i, oy, ox, n;
-
- oy = curscr->cury;
- ox = curscr->curx;
- n = starts - startw;
-
- /*
- * XXX
- * The initial tests that set __noqch don't let us reach here unless
- * we have either CS + HO + SF/sf/SR/sr, or AL + DL. SF/sf and SR/sr
- * scrolling can only shift the entire scrolling region, not just a
- * part of it, which means that the quickch() routine is going to be
- * sadly disappointed in us if we don't have CS as well.
- *
- * If CS, HO and SF/sf are set, can use the scrolling region. Because
- * the cursor position after CS is undefined, we need HO which gives us
- * the ability to move to somewhere without knowledge of the current
- * location of the cursor. Still call __mvcur() anyway, to update its
- * idea of where the cursor is.
- *
- * When the scrolling region has been set, the cursor has to be at the
- * last line of the region to make the scroll happen.
- *
- * Doing SF/SR or AL/DL appears faster on the screen than either sf/sr
- * or al/dl, and, some terminals have AL/DL, sf/sr, and CS, but not
- * SF/SR. So, if we're scrolling almost all of the screen, try and use
- * AL/DL, otherwise use the scrolling region. The "almost all" is a
- * shameless hack for vi.
- */
- if (n > 0) {
- if (CS != NULL && HO != NULL && (SF != NULL ||
- (AL == NULL || DL == NULL ||
- top > 3 || bot + 3 < win->maxy) && sf != NULL)) {
- tputs(__tscroll(CS, top, bot + 1), 0, __cputchar);
- __mvcur(oy, ox, 0, 0, 1);
- tputs(HO, 0, __cputchar);
- __mvcur(0, 0, bot, 0, 1);
- if (SF != NULL)
- tputs(__tscroll(SF, n, 0), 0, __cputchar);
- else
- for (i = 0; i < n; i++)
- tputs(sf, 0, __cputchar);
- tputs(__tscroll(CS, 0, win->maxy), 0, __cputchar);
- __mvcur(bot, 0, 0, 0, 1);
- tputs(HO, 0, __cputchar);
- __mvcur(0, 0, oy, ox, 1);
- return;
- }
-
- /* Scroll up the block. */
- if (SF != NULL && top == 0) {
- __mvcur(oy, ox, bot, 0, 1);
- tputs(__tscroll(SF, n, 0), 0, __cputchar);
- } else if (DL != NULL) {
- __mvcur(oy, ox, top, 0, 1);
- tputs(__tscroll(DL, n, 0), 0, __cputchar);
- } else if (dl != NULL) {
- __mvcur(oy, ox, top, 0, 1);
- for (i = 0; i < n; i++)
- tputs(dl, 0, __cputchar);
- } else if (sf != NULL && top == 0) {
- __mvcur(oy, ox, bot, 0, 1);
- for (i = 0; i < n; i++)
- tputs(sf, 0, __cputchar);
- } else
- abort();
-
- /* Push down the bottom region. */
- __mvcur(top, 0, bot - n + 1, 0, 1);
- if (AL != NULL)
- tputs(__tscroll(AL, n, 0), 0, __cputchar);
- else if (al != NULL)
- for (i = 0; i < n; i++)
- tputs(al, 0, __cputchar);
- else
- abort();
- __mvcur(bot - n + 1, 0, oy, ox, 1);
- } else {
- /*
- * !!!
- * n < 0
- *
- * If CS, HO and SR/sr are set, can use the scrolling region.
- * See the above comments for details.
- */
- if (CS != NULL && HO != NULL && (SR != NULL ||
- (AL == NULL || DL == NULL ||
- top > 3 || bot + 3 < win->maxy) && sr != NULL)) {
- tputs(__tscroll(CS, top, bot + 1), 0, __cputchar);
- __mvcur(oy, ox, 0, 0, 1);
- tputs(HO, 0, __cputchar);
- __mvcur(0, 0, top, 0, 1);
-
- if (SR != NULL)
- tputs(__tscroll(SR, -n, 0), 0, __cputchar);
- else
- for (i = n; i < 0; i++)
- tputs(sr, 0, __cputchar);
- tputs(__tscroll(CS, 0, win->maxy), 0, __cputchar);
- __mvcur(top, 0, 0, 0, 1);
- tputs(HO, 0, __cputchar);
- __mvcur(0, 0, oy, ox, 1);
- return;
- }
-
- /* Preserve the bottom lines. */
- __mvcur(oy, ox, bot + n + 1, 0, 1);
- if (SR != NULL && bot == win->maxy)
- tputs(__tscroll(SR, -n, 0), 0, __cputchar);
- else if (DL != NULL)
- tputs(__tscroll(DL, -n, 0), 0, __cputchar);
- else if (dl != NULL)
- for (i = n; i < 0; i++)
- tputs(dl, 0, __cputchar);
- else if (sr != NULL && bot == win->maxy)
- for (i = n; i < 0; i++)
- tputs(sr, 0, __cputchar);
- else
- abort();
-
- /* Scroll the block down. */
- __mvcur(bot + n + 1, 0, top, 0, 1);
- if (AL != NULL)
- tputs(__tscroll(AL, -n, 0), 0, __cputchar);
- else if (al != NULL)
- for (i = n; i < 0; i++)
- tputs(al, 0, __cputchar);
- else
- abort();
- __mvcur(top, 0, oy, ox, 1);
- }
-}
diff --git a/lib/libocurses/scanw.c b/lib/libocurses/scanw.c
deleted file mode 100644
index a1e1827f1df..00000000000
--- a/lib/libocurses/scanw.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/* $OpenBSD: scanw.c,v 1.4 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * scanw and friends.
- */
-
-#include <stdarg.h>
-
-#include "curses.h"
-
-/*
- * scanw --
- * Implement a scanf on the standard screen.
- */
-int
-scanw(const char *fmt, ...)
-{
- va_list ap;
- int ret;
-
- va_start(ap, fmt);
- ret = vwscanw(stdscr, fmt, ap);
- va_end(ap);
- return (ret);
-}
-
-/*
- * wscanw --
- * Implements a scanf on the given window.
- */
-int
-wscanw(WINDOW *win, const char *fmt, ...)
-{
- va_list ap;
- int ret;
-
- va_start(ap, fmt);
- ret = vwscanw(win, fmt, ap);
- va_end(ap);
- return (ret);
-}
-
-/*
- * mvscanw, mvwscanw --
- * Implement the mvscanw commands. Due to the variable number of
- * arguments, they cannot be macros. Another sigh....
- */
-int
-mvscanw(register int y, register int x, const char *fmt,...)
-{
- va_list ap;
- int ret;
-
- if (move(y, x) != OK)
- return (ERR);
- va_start(ap, fmt);
- ret = vwscanw(stdscr, fmt, ap);
- va_end(ap);
- return (ret);
-}
-
-int
-mvwscanw(register WINDOW * win, register int y, register int x,
- const char *fmt, ...)
-{
- va_list ap;
- int ret;
-
- if (move(y, x) != OK)
- return (ERR);
- va_start(ap, fmt);
- ret = vwscanw(win, fmt, ap);
- va_end(ap);
- return (ret);
-}
-
-/*
- * vwscanw --
- * This routine actually executes the scanf from the window.
- */
-int
-vwscanw(win, fmt, ap)
- WINDOW *win;
- const char *fmt;
- va_list ap;
-{
-
- char buf[1024];
-
- return (wgetstr(win, buf) == OK ?
- vsscanf(buf, fmt, ap) : ERR);
-}
diff --git a/lib/libocurses/scroll.c b/lib/libocurses/scroll.c
deleted file mode 100644
index 7bae9559cda..00000000000
--- a/lib/libocurses/scroll.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/* $OpenBSD: scroll.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "curses.h"
-
-/*
- * scroll --
- * Scroll the window up a line.
- */
-int
-scroll(win)
- register WINDOW *win;
-{
- register int oy, ox;
-
-#ifdef DEBUG
- __CTRACE("scroll: (%0.2o)\n", win);
-#endif
-
- if (!(win->flags & __SCROLLOK))
- return (ERR);
-
- getyx(win, oy, ox);
- wmove(win, 0, 0);
- wdeleteln(win);
- wmove(win, oy, ox);
-
- if (win == curscr) {
- putchar('\n');
- if (!NONL)
- win->curx = 0;
-#ifdef DEBUG
- __CTRACE("scroll: win == curscr\n");
-#endif
- }
- return (OK);
-}
diff --git a/lib/libocurses/setterm.c b/lib/libocurses/setterm.c
deleted file mode 100644
index 1b430b44155..00000000000
--- a/lib/libocurses/setterm.c
+++ /dev/null
@@ -1,232 +0,0 @@
-/* $OpenBSD: setterm.c,v 1.8 2013/12/13 22:54:08 naddy Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/ioctl.h>
-
-#include <stdlib.h>
-#include <string.h>
-#include <termios.h>
-#include <unistd.h>
-#include <limits.h>
-
-#include "curses.h"
-
-static void zap(void);
-
-static char *sflags[] = {
- /* am bs da eo hc in mi ms */
- &AM, &BS, &DA, &EO, &HC, &IN, &MI, &MS,
- /* nc ns os ul xb xn xt xs xx */
- &NC, &NS, &OS, &UL, &XB, &XN, &XT, &XS, &XX
- };
-
-static char *_PC,
- **sstrs[] = {
- /* AL bc bt cd ce cl cm cr cs */
- &AL, &BC, &BT, &CD, &CE, &CL, &CM, &CR, &CS,
- /* dc DL dm do ed ei k0 k1 k2 */
- &DC, &DL, &DM, &DO, &ED, &EI, &K0, &K1, &K2,
- /* k3 k4 k5 k6 k7 k8 k9 ho ic */
- &K3, &K4, &K5, &K6, &K7, &K8, &K9, &HO, &IC,
- /* im ip kd ke kh kl kr ks ku */
- &IM, &IP, &KD, &KE, &KH, &KL, &KR, &KS, &KU,
- /* ll ma nd nl pc rc sc se SF */
- &LL, &MA, &ND, &NL, &_PC, &RC, &SC, &SE, &SF,
- /* so SR ta te ti uc ue up us */
- &SO, &SR, &TA, &TE, &TI, &UC, &UE, &UP, &US,
- /* vb vs ve al dl sf sr AL */
- &VB, &VS, &VE, &al, &dl, &sf, &sr, &AL_PARM,
- /* DL UP DO LE */
- &DL_PARM, &UP_PARM, &DOWN_PARM, &LEFT_PARM,
- /* RI */
- &RIGHT_PARM,
- };
-
-static char *aoftspace; /* Address of _tspace for relocation */
-static char tspace[2048]; /* Space for capability strings */
-
-char *ttytype;
-
-int
-setterm(type)
- register char *type;
-{
- static char genbuf[1024];
- static char __ttytype[1024];
- register int unknown;
- struct winsize win;
- char *p;
-
-#ifdef DEBUG
- __CTRACE("setterm: (\"%s\")\nLINES = %d, COLS = %d\n",
- type, LINES, COLS);
-#endif
- if (type[0] == '\0')
- type = "xx";
- unknown = 0;
- if (tgetent(genbuf, type) != 1) {
- unknown++;
- strlcpy(genbuf, "xx|dumb:", sizeof(genbuf));
- }
-#ifdef DEBUG
- __CTRACE("setterm: tty = %s\n", type);
-#endif
-
- /* Try TIOCGSIZE, and, if it fails, the termcap entry. */
- if (ioctl(STDERR_FILENO, TIOCGWINSZ, &win) != -1 &&
- win.ws_row != 0 && win.ws_col != 0) {
- LINES = win.ws_row;
- COLS = win.ws_col;
- } else {
- LINES = tgetnum("li");
- COLS = tgetnum("co");
- }
-
- /* POSIX 1003.2 requires that the environment override. */
- if ((p = getenv("LINES")) != NULL) {
- long l = strtol(p, &p, 10);
- if (l > 0 && l < INT_MAX && *p == '\0')
- LINES = (int)l;
- }
- if ((p = getenv("COLUMNS")) != NULL) {
- long l = strtol(p, &p, 10);
- if (l > 0 && l < INT_MAX && *p == '\0')
- COLS = (int)l;
- }
-
- /*
- * Want cols > 4, otherwise things will fail.
- */
- if (COLS <= 4)
- return (ERR);
-
-#ifdef DEBUG
- __CTRACE("setterm: LINES = %d, COLS = %d\n", LINES, COLS);
-#endif
- aoftspace = tspace;
- zap(); /* Get terminal description. */
-
- /* If we can't tab, we can't backtab, either. */
- if (!GT)
- BT = NULL;
-
- /*
- * Test for cursor motion capbility.
- *
- * XXX
- * This is truly stupid -- tgoto returns "OOPS" if it can't
- * do cursor motions.
- */
- if (tgoto(CM, 0, 0)[0] == 'O') {
- CA = 0;
- CM = 0;
- } else
- CA = 1;
-
- PC = _PC ? _PC[0] : 0;
- aoftspace = tspace;
- ttytype = longname(genbuf, __ttytype);
-
- /* If no scrolling commands, no quick change. */
- __noqch =
- (CS == NULL || HO == NULL ||
- SF == NULL && sf == NULL || SR == NULL && sr == NULL) &&
- (AL == NULL && al == NULL || DL == NULL && dl == NULL);
-
- return (unknown ? ERR : OK);
-}
-
-/*
- * zap --
- * Gets all the terminal flags from the termcap database.
- */
-static void
-zap()
-{
- register char *namp, ***sp;
- register char **fp;
- char tmp[3];
-#ifdef DEBUG
- register char *cp;
-#endif
- tmp[2] = '\0';
-
- namp = "ambsdaeohcinmimsncnsosulxbxnxtxsxx";
- fp = sflags;
- do {
- *tmp = *namp;
- *(tmp + 1) = *(namp + 1);
- *(*fp++) = tgetflag(tmp);
-#ifdef DEBUG
- __CTRACE("2.2s = %s\n", namp, *fp[-1] ? "TRUE" : "FALSE");
-#endif
- namp += 2;
-
- } while (*namp);
- namp = "ALbcbtcdceclcmcrcsdcDLdmdoedeik0k1k2k3k4k5k6k7k8k9hoicimipkdkekhklkrkskullmandnlpcrcscseSFsoSRtatetiucueupusvbvsvealdlsfsrALDLUPDOLERI";
- sp = sstrs;
- do {
- *tmp = *namp;
- *(tmp + 1) = *(namp + 1);
- *(*sp++) = tgetstr(tmp, &aoftspace);
-#ifdef DEBUG
- __CTRACE("2.2s = %s", namp, *sp[-1] == NULL ? "NULL\n" : "\"");
- if (*sp[-1] != NULL) {
- for (cp = *sp[-1]; *cp; cp++)
- __CTRACE("%s", unctrl(*cp));
- __CTRACE("\"\n");
- }
-#endif
- namp += 2;
- } while (*namp);
- if (XS)
- SO = SE = NULL;
- else {
- if (tgetnum("sg") > 0)
- SO = NULL;
- if (tgetnum("ug") > 0)
- US = NULL;
- if (!SO && US) {
- SO = US;
- SE = UE;
- }
- }
-}
-
-/*
- * getcap --
- * Return a capability from termcap.
- */
-char *
-getcap(name)
- char *name;
-{
- return (tgetstr(name, &aoftspace));
-}
diff --git a/lib/libocurses/shlib_version b/lib/libocurses/shlib_version
deleted file mode 100644
index 9c1551636c5..00000000000
--- a/lib/libocurses/shlib_version
+++ /dev/null
@@ -1,2 +0,0 @@
-major=6
-minor=0
diff --git a/lib/libocurses/standout.c b/lib/libocurses/standout.c
deleted file mode 100644
index c43d0b594be..00000000000
--- a/lib/libocurses/standout.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* $OpenBSD: standout.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "curses.h"
-
-/*
- * wstandout
- * Enter standout mode.
- */
-int
-wstandout(win)
- WINDOW *win;
-{
- /*
- * If standout/standend strings, or can underline, set the
- * screen standout bit.
- */
- if (SO != NULL && SE != NULL || UC != NULL)
- win->flags |= __WSTANDOUT;
- return (1);
-}
-
-/*
- * wstandend --
- * Exit standout mode.
- */
-int
-wstandend(win)
- WINDOW *win;
-{
- win->flags &= ~__WSTANDOUT;
- return (1);
-}
diff --git a/lib/libocurses/termcap.c b/lib/libocurses/termcap.c
deleted file mode 100644
index 8d3887bd884..00000000000
--- a/lib/libocurses/termcap.c
+++ /dev/null
@@ -1,214 +0,0 @@
-/* $OpenBSD: termcap.c,v 1.10 2015/01/16 16:48:51 deraadt Exp $ */
-/* $NetBSD: termcap.c,v 1.7 1995/06/05 19:45:52 pk Exp $ */
-
-/*
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#define PBUFSIZ 512 /* max length of filename path */
-#define PVECSIZ 32 /* max number of names in path */
-
-#include <stdio.h>
-#include <ctype.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <limits.h>
-#include <curses.h>
-#include "pathnames.h"
-
-/*
- * termcap - routines for dealing with the terminal capability data base
- *
- * BUG: Should use a "last" pointer in tbuf, so that searching
- * for capabilities alphabetically would not be a n**2/2
- * process when large numbers of capabilities are given.
- * Note: If we add a last pointer now we will screw up the
- * tc capability. We really should compile termcap.
- *
- * Essentially all the work here is scanning and decoding escapes
- * in string capabilities. We don't use stdio because the editor
- * doesn't, and because living w/o it is not hard.
- */
-
-static char *tbuf; /* termcap buffer */
-
-/*
- * Get an entry for terminal name in buffer bp from the termcap file.
- */
-int
-tgetent(bp, name)
- char *bp, *name;
-{
- register char *p;
- register char *cp;
- char *dummy;
- char **fname;
- char *home;
- int i;
- char pathbuf[PATH_MAX]; /* holds raw path of filenames */
- char *pathvec[PVECSIZ]; /* to point to names in pathbuf */
- char **pvec; /* holds usable tail of path vector */
- char *termpath;
-
- fname = pathvec;
- pvec = pathvec;
- tbuf = bp;
-
- cp = issetugid() ? NULL : getenv("TERMCAP");
- /*
- * TERMCAP can have one of two things in it. It can be the name
- * of a file to use instead of /usr/share/misc/termcap. In this
- * case it better start with a "/". Or it can be an entry to use
- * so we don't have to read the file. In this case it has to
- * already have the newlines crunched out. If TERMCAP does not
- * hold a file name then a path of names is searched instead.
- * The path is found in the TERMPATH variable, or becomes
- * "$HOME/.termcap /usr/share/misc/termcap" if no TERMPATH exists.
- */
- if (cp == NULL) {
- strlcpy(pathbuf, _PATH_TERMCAP, sizeof(pathbuf));
- } else if (!cp || *cp != '/') { /* TERMCAP holds an entry */
- if ((termpath = getenv("TERMPATH")) != NULL)
- strlcpy(pathbuf, termpath, sizeof(pathbuf));
- else if ((home = getenv("HOME")) == NULL || *home == '\0' ||
- snprintf(pathbuf, sizeof(pathbuf), "%s/%s", home,
- _PATH_DEF) >= sizeof(pathbuf))
- strlcpy(pathbuf, _PATH_DEF, sizeof(pathbuf));
- } else { /* user-defined path in TERMCAP */
- /* still can be tokenized */
- strlcpy(pathbuf, cp, sizeof(pathbuf));
- }
- *fname++ = pathbuf; /* tokenize path into vector of names */
-
- /* split pathbuf into a vector of paths */
- p = pathbuf;
- while (*++p)
- if (*p == ' ' || *p == ':') {
- *p = '\0';
- while (*++p)
- if (*p != ' ' && *p != ':')
- break;
- if (*p == '\0')
- break;
- *fname++ = p;
- if (fname >= pathvec + PVECSIZ) {
- fname--;
- break;
- }
- }
- *fname = (char *) 0; /* mark end of vector */
- if (cp && *cp && *cp != '/')
- if (cgetset(cp) < 0)
- return (-2);
-
- dummy = NULL;
- i = cgetent(&dummy, pathvec, name);
-
- if (i == 0 && bp != NULL) {
- strlcpy(bp, dummy, 1024);
- if ((cp = strrchr(bp, ':')) != NULL)
- if (cp[1] != '\0')
- cp[1] = '\0';
- }
- else if (i == 0 && bp == NULL)
- tbuf = dummy;
- else if (dummy != NULL)
- free(dummy);
-
- /* no tc reference loop return code in libterm XXX */
- if (i == -3)
- return (-1);
- return (i + 1);
-}
-
-/*
- * Return the (numeric) option id.
- * Numeric options look like
- * li#80
- * i.e. the option string is separated from the numeric value by
- * a # character. If the option is not found we return -1.
- * Note that we handle octal numbers beginning with 0.
- */
-int
-tgetnum(id)
- char *id;
-{
- long num;
-
- if (cgetnum(tbuf, id, &num) == 0)
- return (num);
- else
- return (-1);
-}
-
-/*
- * Handle a flag option.
- * Flag options are given "naked", i.e. followed by a : or the end
- * of the buffer. Return 1 if we find the option, or 0 if it is
- * not given.
- */
-int
-tgetflag(id)
- char *id;
-{
- return (cgetcap(tbuf, id, ':') != NULL);
-}
-
-/*
- * Get a string valued option.
- * These are given as
- * cl=^Z
- * Much decoding is done on the strings, and the strings are
- * placed in area, which is a ref parameter which is updated.
- * No checking on area overflow.
- */
-char *
-tgetstr(id, area)
- char *id, **area;
-{
- char ids[3];
- char *s;
- int i;
-
- /*
- * XXX
- * This is for all the boneheaded programs that relied on tgetstr
- * to look only at the first 2 characters of the string passed...
- */
- *ids = *id;
- ids[1] = id[1];
- ids[2] = '\0';
-
- if ((i = cgetstr(tbuf, ids, &s)) < 0)
- return NULL;
-
- strlcpy(*area, s, 1024);
- *area += i + 1;
- return (s);
-}
diff --git a/lib/libocurses/tgoto.c b/lib/libocurses/tgoto.c
deleted file mode 100644
index 85c8eb92fef..00000000000
--- a/lib/libocurses/tgoto.c
+++ /dev/null
@@ -1,220 +0,0 @@
-/* $OpenBSD: tgoto.c,v 1.4 2005/08/14 17:15:19 espie Exp $ */
-/* $NetBSD: tgoto.c,v 1.5 1995/06/05 19:45:54 pk Exp $ */
-
-/*
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <string.h>
-#include <curses.h>
-
-#define CTRL(c) ((c) & 037)
-
-#define MAXRETURNSIZE 64
-
-char *UP;
-char *BC;
-
-/*
- * Routine to perform cursor addressing.
- * CM is a string containing printf type escapes to allow
- * cursor addressing. We start out ready to print the destination
- * line, and switch each time we print row or column.
- * The following escapes are defined for substituting row/column:
- *
- * %d as in printf
- * %2 like %2d
- * %3 like %3d
- * %. gives %c hacking special case characters
- * %+x like %c but adding x first
- *
- * The codes below affect the state but don't use up a value.
- *
- * %>xy if value > x add y
- * %r reverses row/column
- * %i increments row/column (for one origin indexing)
- * %% gives %
- * %B BCD (2 decimal digits encoded in one byte)
- * %D Delta Data (backwards bcd)
- *
- * all other characters are ``self-inserting''.
- */
-char *
-tgoto(CM, destcol, destline)
- char *CM;
- int destcol, destline;
-{
- static char result[MAXRETURNSIZE];
- static char added[10];
- char *cp = CM;
- register char *dp = result;
- register int c;
- int oncol = 0;
- register int which = destline;
-
- if (cp == 0) {
-toohard:
- /*
- * ``We don't do that under BOZO's big top''
- */
- return ("OOPS");
- }
- added[0] = 0;
- while ((c = *cp++) != '\0') {
- if (c != '%') {
- if (dp >= &result[MAXRETURNSIZE])
- goto toohard;
- *dp++ = c;
- continue;
- }
- switch (c = *cp++) {
-
-#ifdef CM_N
- case 'n':
- destcol ^= 0140;
- destline ^= 0140;
- goto setwhich;
-#endif
-
- case 'd':
- if (which < 10)
- goto one;
- if (which < 100)
- goto two;
- /* fall into... */
-
- case '3':
- if (dp >= &result[MAXRETURNSIZE])
- goto toohard;
- *dp++ = (which / 100) | '0';
- which %= 100;
- /* fall into... */
-
- case '2':
-two:
- if (dp >= &result[MAXRETURNSIZE])
- goto toohard;
- *dp++ = which / 10 | '0';
-one:
- if (dp >= &result[MAXRETURNSIZE])
- goto toohard;
- *dp++ = which % 10 | '0';
-swap:
- oncol = 1 - oncol;
-setwhich:
- which = oncol ? destcol : destline;
- continue;
-
-#ifdef CM_GT
- case '>':
- if (which > *cp++)
- which += *cp++;
- else
- cp++;
- continue;
-#endif
-
- case '+':
- which += *cp++;
- /* fall into... */
-
- case '.':
- /*
- * This code is worth scratching your head at for a
- * while. The idea is that various weird things can
- * happen to nulls, EOT's, tabs, and newlines by the
- * tty driver, arpanet, and so on, so we don't send
- * them if we can help it.
- *
- * Tab is taken out to get Ann Arbors to work, otherwise
- * when they go to column 9 we increment which is wrong
- * because bcd isn't continuous. We should take out
- * the rest too, or run the thing through more than
- * once until it doesn't make any of these, but that
- * would make termlib (and hence pdp-11 ex) bigger,
- * and also somewhat slower. This requires all
- * programs which use termlib to stty tabs so they
- * don't get expanded. They should do this anyway
- * because some terminals use ^I for other things,
- * like nondestructive space.
- */
- if ((which == 0 || which == CTRL('d') || which == '\n')
- && (oncol || UP)) /* Assumption: backspace works */
- /*
- * Loop needed because newline happens
- * to be the successor of tab.
- */
- do {
- if (strlcat(added, oncol ?
- (BC ? BC : "\b") : UP,
- sizeof(added)) >= sizeof(added))
- goto toohard;
- which++;
- } while (which == '\n');
- if (dp >= &result[MAXRETURNSIZE])
- goto toohard;
- *dp++ = which;
- goto swap;
-
- case 'r':
- oncol = 1;
- goto setwhich;
-
- case 'i':
- destcol++;
- destline++;
- which++;
- continue;
-
- case '%':
- if (dp >= &result[MAXRETURNSIZE])
- goto toohard;
- *dp++ = c;
- continue;
-
-#ifdef CM_B
- case 'B':
- which = (which/10 << 4) + which%10;
- continue;
-#endif
-
-#ifdef CM_D
- case 'D':
- which = which - 2 * (which%16);
- continue;
-#endif
-
- default:
- goto toohard;
- }
- }
- if (strlcpy(dp, added, sizeof(result) - (dp - result))
- >= sizeof(result) - (dp - result))
- goto toohard;
- return (result);
-}
diff --git a/lib/libocurses/toucholap.c b/lib/libocurses/toucholap.c
deleted file mode 100644
index 7f1514dd56e..00000000000
--- a/lib/libocurses/toucholap.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* $OpenBSD: toucholap.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "curses.h"
-
-/*
- * touchoverlap --
- * Touch, on win2, the part that overlaps with win1.
- */
-int
-touchoverlap(win1, win2)
- register WINDOW *win1, *win2;
-{
- register int y, endy, endx, starty, startx;
-
-#ifdef DEBUG
- __CTRACE("touchoverlap: (%0.2o, %0.2o);\n", win1, win2);
-#endif
- starty = max(win1->begy, win2->begy);
- startx = max(win1->begx, win2->begx);
- endy = min(win1->maxy + win1->begy, win2->maxy + win2->begx);
- endx = min(win1->maxx + win1->begx, win2->maxx + win2->begx);
-#ifdef DEBUG
- __CTRACE("touchoverlap: from (%d,%d) to (%d,%d)\n",
- starty, startx, endy, endx);
- __CTRACE("touchoverlap: win1 (%d,%d) to (%d,%d)\n",
- win1->begy, win1->begx, win1->begy + win1->maxy,
- win1->begx + win1->maxx);
- __CTRACE("touchoverlap: win2 (%d,%d) to (%d,%d)\n",
- win2->begy, win2->begx, win2->begy + win2->maxy,
- win2->begx + win2->maxx);
-#endif
- if (starty >= endy || startx >= endx)
- return (OK);
- starty -= win2->begy;
- startx -= win2->begx;
- endy -= win2->begy;
- endx -= win2->begx;
- for (--endx, y = starty; y < endy; y++)
- __touchline(win2, y, startx, endx, 0);
- return (OK);
-}
-
diff --git a/lib/libocurses/touchwin.c b/lib/libocurses/touchwin.c
deleted file mode 100644
index d1eb856550f..00000000000
--- a/lib/libocurses/touchwin.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/* $OpenBSD: touchwin.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "curses.h"
-
-/*
- * touchline --
- * Touch a given line.
- */
-int
-touchline(win, y, sx, ex)
- WINDOW *win;
- register int y, sx, ex;
-{
- return (__touchline(win, y, sx, ex, 1));
-}
-
-
-/*
- * touchwin --
- * Make it look like the whole window has been changed.
- */
-int
-touchwin(win)
- register WINDOW *win;
-{
- register int y, maxy;
-
-#ifdef DEBUG
- __CTRACE("touchwin: (%0.2o)\n", win);
-#endif
- maxy = win->maxy;
- for (y = 0; y < maxy; y++)
- __touchline(win, y, 0, win->maxx - 1, 1);
- return (OK);
-}
-
-
-int
-__touchwin(win)
- register WINDOW *win;
-{
- register int y, maxy;
-
-#ifdef DEBUG
- __CTRACE("touchwin: (%0.2o)\n", win);
-#endif
- maxy = win->maxy;
- for (y = 0; y < maxy; y++)
- __touchline(win, y, 0, win->maxx - 1, 0);
- return (OK);
-}
-
-int
-__touchline(win, y, sx, ex, force)
- register WINDOW *win;
- register int y, sx, ex;
- int force;
-{
-#ifdef DEBUG
- __CTRACE("touchline: (%0.2o, %d, %d, %d, %d)\n", win, y, sx, ex, force);
- __CTRACE("touchline: first = %d, last = %d\n",
- *win->lines[y]->firstchp, *win->lines[y]->lastchp);
-#endif
- if (force)
- win->lines[y]->flags |= __FORCEPAINT;
- sx += win->ch_off;
- ex += win->ch_off;
- if (!(win->lines[y]->flags & __ISDIRTY)) {
- win->lines[y]->flags |= __ISDIRTY;
- *win->lines[y]->firstchp = sx;
- *win->lines[y]->lastchp = ex;
- } else {
- if (*win->lines[y]->firstchp > sx)
- *win->lines[y]->firstchp = sx;
- if (*win->lines[y]->lastchp < ex)
- *win->lines[y]->lastchp = ex;
- }
-#ifdef DEBUG
- __CTRACE("touchline: first = %d, last = %d\n",
- *win->lines[y]->firstchp, *win->lines[y]->lastchp);
-#endif
- return (OK);
-}
-
-
diff --git a/lib/libocurses/tputs.c b/lib/libocurses/tputs.c
deleted file mode 100644
index 3eebe51e75b..00000000000
--- a/lib/libocurses/tputs.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/* $OpenBSD: tputs.c,v 1.5 2013/12/03 00:25:07 deraadt Exp $ */
-/* $NetBSD: tputs.c,v 1.5 1995/06/06 08:14:37 pk Exp $ */
-
-/*
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <ctype.h>
-#include <curses.h>
-#undef ospeed
-
-/*
- * The following array gives the number of tens of milliseconds per
- * character for each speed as returned by gtty. Thus since 300
- * baud returns a 7, there are 33.3 milliseconds per char at 300 baud.
- */
-static
-short tmspc10[] = {
- 0, 2000, 1333, 909, 743, 666, 500, 333, 166, 83, 55, 41, 20, 10, 5
-};
-
-short ospeed;
-char PC;
-
-/*
- * Put the character string cp out, with padding.
- * The number of affected lines is affcnt, and the routine
- * used to output one character is outc.
- */
-void
-tputs(cp, affcnt, outc)
- register char *cp;
- int affcnt;
- void (*outc)(int);
-{
- register int i = 0;
- register int mspc10;
-
- if (cp == 0)
- return;
-
- /*
- * Convert the number representing the delay.
- */
- if (isdigit(*cp)) {
- do
- i = i * 10 + *cp++ - '0';
- while (isdigit(*cp));
- }
- i *= 10;
- if (*cp == '.') {
- cp++;
- if (isdigit(*cp))
- i += *cp - '0';
- /*
- * Only one digit to the right of the decimal point.
- */
- while (isdigit(*cp))
- cp++;
- }
-
- /*
- * If the delay is followed by a `*', then
- * multiply by the affected lines count.
- */
- if (*cp == '*')
- cp++, i *= affcnt;
-
- /*
- * The guts of the string.
- */
- while (*cp)
- (*outc)(*cp++);
-
- /*
- * If no delay needed, or output speed is
- * not comprehensible, then don't try to delay.
- */
- if (i == 0)
- return;
- if (ospeed <= 0 || ospeed >= (sizeof tmspc10 / sizeof tmspc10[0]))
- return;
-
- /*
- * Round up by a half a character frame,
- * and then do the delay.
- * Too bad there are no user program accessible programmed delays.
- * Transmitting pad characters slows many
- * terminals down and also loads the system.
- */
- mspc10 = tmspc10[ospeed];
- i += mspc10 / 2;
- for (i /= mspc10; i > 0; i--)
- (*outc)(PC);
-}
diff --git a/lib/libocurses/tscroll.c b/lib/libocurses/tscroll.c
deleted file mode 100644
index 89bd83e7c25..00000000000
--- a/lib/libocurses/tscroll.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/* $OpenBSD: tscroll.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*-
- * Copyright (c) 1992, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "curses.h"
-
-#define MAXRETURNSIZE 64
-
-/*
- * Routine to perform scrolling. Derived from tgoto.c in tercamp(3)
- * library. Cap is a string containing printf type escapes to allow
- * scrolling. The following escapes are defined for substituting n:
- *
- * %d as in printf
- * %2 like %2d
- * %3 like %3d
- * %. gives %c hacking special case characters
- * %+x like %c but adding x first
- *
- * The codes below affect the state but don't use up a value.
- *
- * %>xy if value > x add y
- * %i increments n
- * %% gives %
- * %B BCD (2 decimal digits encoded in one byte)
- * %D Delta Data (backwards bcd)
- *
- * all other characters are ``self-inserting''.
- */
-char *
-__tscroll(cap, n1, n2)
- const char *cap;
- int n1, n2;
-{
- static char result[MAXRETURNSIZE];
- int c, n;
- char *dp;
-
- if (cap == NULL)
- goto err;
- for (n = n1, dp = result; (c = *cap++) != '\0';) {
- if (c != '%') {
- *dp++ = c;
- continue;
- }
- switch (c = *cap++) {
- case 'n':
- n ^= 0140;
- continue;
- case 'd':
- if (n < 10)
- goto one;
- if (n < 100)
- goto two;
- /* FALLTHROUGH */
- case '3':
- *dp++ = (n / 100) | '0';
- n %= 100;
- /* FALLTHROUGH */
- case '2':
-two: *dp++ = n / 10 | '0';
-one: *dp++ = n % 10 | '0';
- n = n2;
- continue;
- case '>':
- if (n > *cap++)
- n += *cap++;
- else
- cap++;
- continue;
- case '+':
- n += *cap++;
- /* FALLTHROUGH */
- case '.':
- *dp++ = n;
- continue;
- case 'i':
- n++;
- continue;
- case '%':
- *dp++ = c;
- continue;
- case 'B':
- n = (n / 10 << 4) + n % 10;
- continue;
- case 'D':
- n = n - 2 * (n % 16);
- continue;
- /*
- * XXX
- * System V terminfo files have lots of extra gunk.
- * The only one we've seen in scrolling strings is
- * %pN, and it seems to work okay if we ignore it.
- */
- case 'p':
- ++cap;
- continue;
- default:
- goto err;
- }
- }
- *dp = '\0';
- return (result);
-
-err: return("curses: __tscroll failed");
-}
diff --git a/lib/libocurses/tstp.c b/lib/libocurses/tstp.c
deleted file mode 100644
index d2bb7eb61e9..00000000000
--- a/lib/libocurses/tstp.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/* $OpenBSD: tstp.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <errno.h>
-#include <signal.h>
-#include <termios.h>
-#include <unistd.h>
-
-#include "curses.h"
-
-/*
- * stop_signal_handler --
- * Handle stop signals.
- */
-void
-__stop_signal_handler(signo)
- int signo;
-{
- struct termios save;
- sigset_t oset, set;
-
- /* Get the current terminal state (which the user may have changed). */
- if (tcgetattr(STDIN_FILENO, &save))
- return;
-
- /*
- * Block window change and timer signals. The latter is because
- * applications use timers to decide when to repaint the screen.
- */
- (void)sigemptyset(&set);
- (void)sigaddset(&set, SIGALRM);
- (void)sigaddset(&set, SIGWINCH);
- (void)sigprocmask(SIG_BLOCK, &set, &oset);
-
- /*
- * End the window, which also resets the terminal state to the
- * original modes.
- */
- endwin();
-
- /* Unblock SIGTSTP. */
- (void)sigemptyset(&set);
- (void)sigaddset(&set, SIGTSTP);
- (void)sigprocmask(SIG_UNBLOCK, &set, NULL);
-
- /* Stop ourselves. */
- __restore_stophandler();
- (void)kill(0, SIGTSTP);
-
- /* Time passes ... */
-
- /* Reset the curses SIGTSTP signal handler. */
- __set_stophandler();
-
- /* save the new "default" terminal state */
- (void)tcgetattr(STDIN_FILENO, &__orig_termios);
-
- /* Reset the terminal state to the mode just before we stopped. */
- (void)tcsetattr(STDIN_FILENO, __tcaction ?
- TCSASOFT | TCSADRAIN : TCSADRAIN, &save);
-
- /* Restart the screen. */
- __startwin();
-
- /* Repaint the screen. */
- wrefresh(curscr);
-
- /* Reset the signals. */
- (void)sigprocmask(SIG_SETMASK, &oset, NULL);
-}
-
-static void (*otstpfn)() = SIG_DFL;
-
-/*
- * Set the TSTP handler.
- */
-void
-__set_stophandler()
-{
- otstpfn = signal(SIGTSTP, __stop_signal_handler);
-}
-
-/*
- * Restore the TSTP handler.
- */
-void
-__restore_stophandler()
-{
- (void)signal(SIGTSTP, otstpfn);
-}
diff --git a/lib/libocurses/tty.c b/lib/libocurses/tty.c
deleted file mode 100644
index 707108e4e49..00000000000
--- a/lib/libocurses/tty.c
+++ /dev/null
@@ -1,274 +0,0 @@
-/* $OpenBSD: tty.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*-
- * Copyright (c) 1992, 1993, 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <stdlib.h>
-#include <termios.h>
-#include <unistd.h>
-
-#include "curses.h"
-
-/*
- * In general, curses should leave tty hardware settings alone (speed, parity,
- * word size). This is most easily done in BSD by using TCSASOFT on all
- * tcsetattr calls. On other systems, it would be better to get and restore
- * those attributes at each change, or at least when stopped and restarted.
- * See also the comments in getterm().
- */
-#ifdef TCSASOFT
-int __tcaction = 1; /* Ignore hardware settings. */
-#else
-int __tcaction = 0;
-#endif
-
-struct termios __orig_termios, __baset;
-static struct termios cbreakt, rawt, *curt;
-static int useraw;
-
-#ifndef OXTABS
-#ifdef XTABS /* SMI uses XTABS. */
-#define OXTABS XTABS
-#else
-#define OXTABS 0
-#endif
-#endif
-
-/*
- * gettmode --
- * Do terminal type initialization.
- */
-int
-gettmode()
-{
- useraw = 0;
-
- if (tcgetattr(STDIN_FILENO, &__orig_termios))
- return (ERR);
-
- __baset = __orig_termios;
- __baset.c_oflag &= ~OXTABS;
-
- GT = 0; /* historical. was used before we wired OXTABS off */
- NONL = (__baset.c_oflag & ONLCR) == 0;
-
- /*
- * XXX
- * System V and SMI systems overload VMIN and VTIME, such that
- * VMIN is the same as the VEOF element, and VTIME is the same
- * as the VEOL element. This means that, if VEOF was ^D, the
- * default VMIN is 4. Majorly stupid.
- */
- cbreakt = __baset;
- cbreakt.c_lflag &= ~ICANON;
- cbreakt.c_cc[VMIN] = 1;
- cbreakt.c_cc[VTIME] = 0;
-
- rawt = cbreakt;
- rawt.c_iflag &= ~(IGNBRK|BRKINT|PARMRK|INLCR|IGNCR|ICRNL|IXON);
- rawt.c_oflag &= ~OPOST;
- rawt.c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN);
-
- /*
- * In general, curses should leave hardware-related settings alone.
- * This includes parity and word size. Older versions set the tty
- * to 8 bits, no parity in raw(), but this is considered to be an
- * artifact of the old tty interface. If it's desired to change
- * parity and word size, the TCSASOFT bit has to be removed from the
- * calls that switch to/from "raw" mode.
- */
- if (!__tcaction) {
- rawt.c_iflag &= ~ISTRIP;
- rawt.c_cflag &= ~(CSIZE|PARENB);
- rawt.c_cflag |= CS8;
- }
-
- curt = &__baset;
- return (tcsetattr(STDIN_FILENO, __tcaction ?
- TCSASOFT | TCSADRAIN : TCSADRAIN, curt) ? ERR : OK);
-}
-
-int
-raw()
-{
- useraw = __pfast = __rawmode = 1;
- curt = &rawt;
- return (tcsetattr(STDIN_FILENO, __tcaction ?
- TCSASOFT | TCSADRAIN : TCSADRAIN, curt) ? ERR : OK);
-}
-
-int
-noraw()
-{
- useraw = __pfast = __rawmode = 0;
- curt = &__baset;
- return (tcsetattr(STDIN_FILENO, __tcaction ?
- TCSASOFT | TCSADRAIN : TCSADRAIN, curt) ? ERR : OK);
-}
-
-int
-cbreak()
-{
-
- __rawmode = 1;
- curt = useraw ? &rawt : &cbreakt;
- return (tcsetattr(STDIN_FILENO, __tcaction ?
- TCSASOFT | TCSADRAIN : TCSADRAIN, curt) ? ERR : OK);
-}
-
-int
-nocbreak()
-{
-
- __rawmode = 0;
- curt = useraw ? &rawt : &__baset;
- return (tcsetattr(STDIN_FILENO, __tcaction ?
- TCSASOFT | TCSADRAIN : TCSADRAIN, curt) ? ERR : OK);
-}
-
-int
-echo()
-{
- rawt.c_lflag |= ECHO;
- cbreakt.c_lflag |= ECHO;
- __baset.c_lflag |= ECHO;
-
- __echoit = 1;
- return (tcsetattr(STDIN_FILENO, __tcaction ?
- TCSASOFT | TCSADRAIN : TCSADRAIN, curt) ? ERR : OK);
-}
-
-int
-noecho()
-{
- rawt.c_lflag &= ~ECHO;
- cbreakt.c_lflag &= ~ECHO;
- __baset.c_lflag &= ~ECHO;
-
- __echoit = 0;
- return (tcsetattr(STDIN_FILENO, __tcaction ?
- TCSASOFT | TCSADRAIN : TCSADRAIN, curt) ? ERR : OK);
-}
-
-int
-nl()
-{
- rawt.c_iflag |= ICRNL;
- rawt.c_oflag |= ONLCR;
- cbreakt.c_iflag |= ICRNL;
- cbreakt.c_oflag |= ONLCR;
- __baset.c_iflag |= ICRNL;
- __baset.c_oflag |= ONLCR;
-
- __pfast = __rawmode;
- return (tcsetattr(STDIN_FILENO, __tcaction ?
- TCSASOFT | TCSADRAIN : TCSADRAIN, curt) ? ERR : OK);
-}
-
-int
-nonl()
-{
- rawt.c_iflag &= ~ICRNL;
- rawt.c_oflag &= ~ONLCR;
- cbreakt.c_iflag &= ~ICRNL;
- cbreakt.c_oflag &= ~ONLCR;
- __baset.c_iflag &= ~ICRNL;
- __baset.c_oflag &= ~ONLCR;
-
- __pfast = 1;
- return (tcsetattr(STDIN_FILENO, __tcaction ?
- TCSASOFT | TCSADRAIN : TCSADRAIN, curt) ? ERR : OK);
-}
-
-void
-__startwin()
-{
- static char *stdbuf;
- static size_t len;
-
- (void)fflush(stdout);
-
- /*
- * Some C libraries default to a 1K buffer when talking to a tty.
- * With a larger screen, especially across a network, we'd like
- * to get it to all flush in a single write. Make it twice as big
- * as just the characters (so that we have room for cursor motions
- * and standout information) but no more than 8K.
- */
- if (stdbuf == NULL) {
- if ((len = LINES * COLS * 2) > 8192)
- len = 8192;
- if ((stdbuf = malloc(len)) == NULL)
- len = 0;
- }
- (void)setvbuf(stdout, stdbuf, _IOFBF, len);
-
- tputs(TI, 0, __cputchar);
- tputs(VS, 0, __cputchar);
-}
-
-int
-endwin()
-{
- __restore_stophandler();
-
- if (curscr != NULL) {
- if (curscr->flags & __WSTANDOUT) {
- tputs(SE, 0, __cputchar);
- curscr->flags &= ~__WSTANDOUT;
- }
- __mvcur(curscr->cury, curscr->cury, curscr->maxy - 1, 0, 0);
- }
-
- (void)tputs(VE, 0, __cputchar);
- (void)tputs(TE, 0, __cputchar);
- (void)fflush(stdout);
- (void)setvbuf(stdout, NULL, _IOLBF, 0);
-
- return (tcsetattr(STDIN_FILENO, __tcaction ?
- TCSASOFT | TCSADRAIN : TCSADRAIN, &__orig_termios) ? ERR : OK);
-}
-
-/*
- * The following routines, savetty and resetty are completely useless and
- * are left in only as stubs. If people actually use them they will almost
- * certainly screw up the state of the world.
- */
-static struct termios savedtty;
-int
-savetty()
-{
- return (tcgetattr(STDIN_FILENO, &savedtty) ? ERR : OK);
-}
-
-int
-resetty()
-{
- return (tcsetattr(STDIN_FILENO, __tcaction ?
- TCSASOFT | TCSADRAIN : TCSADRAIN, &savedtty) ? ERR : OK);
-}
diff --git a/lib/libocurses/unctrl.c b/lib/libocurses/unctrl.c
deleted file mode 100644
index 1be2ef46567..00000000000
--- a/lib/libocurses/unctrl.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/* $OpenBSD: unctrl.c,v 1.3 2005/08/14 17:15:19 espie Exp $ */
-/*
- * Copyright (c) 1981, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-char *__unctrl[256] = {
- "^@", "^A", "^B", "^C", "^D", "^E", "^F", "^G",
- "^H", "^I", "^J", "^K", "^L", "^M", "^N", "^O",
- "^P", "^Q", "^R", "^S", "^T", "^U", "^V", "^W",
- "^X", "^Y", "^Z", "^[", "^\\", "^]", "^~", "^_",
- " ", "!", "\"", "#", "$", "%", "&", "'",
- "(", ")", "*", "+", ",", "-", ".", "/",
- "0", "1", "2", "3", "4", "5", "6", "7",
- "8", "9", ":", ";", "<", "=", ">", "?",
- "@", "A", "B", "C", "D", "E", "F", "G",
- "H", "I", "J", "K", "L", "M", "N", "O",
- "P", "Q", "R", "S", "T", "U", "V", "W",
- "X", "Y", "Z", "[", "\\", "]", "^", "_",
- "`", "a", "b", "c", "d", "e", "f", "g",
- "h", "i", "j", "k", "l", "m", "n", "o",
- "p", "q", "r", "s", "t", "u", "v", "w",
- "x", "y", "z", "{", "|", "}", "~", "^?",
-
- "0x80", "0x81", "0x82", "0x83", "0x84", "0x85", "0x86", "0x87",
- "0x88", "0x89", "0x8a", "0x8b", "0x8c", "0x8d", "0x8e", "0x8f",
- "0x90", "0x91", "0x92", "0x93", "0x94", "0x95", "0x96", "0x97",
- "0x98", "0x99", "0x9a", "0x9b", "0x9c", "0x9d", "0x9e", "0x9f",
- "0xa0", "0xa1", "0xa2", "0xa3", "0xa4", "0xa5", "0xa6", "0xa7",
- "0xa8", "0xa9", "0xaa", "0xab", "0xac", "0xad", "0xae", "0xaf",
- "0xb0", "0xb1", "0xb2", "0xb3", "0xb4", "0xb5", "0xb6", "0xb7",
- "0xb8", "0xb9", "0xba", "0xbb", "0xbc", "0xbd", "0xbe", "0xbf",
- "0xc0", "0xc1", "0xc2", "0xc3", "0xc4", "0xc5", "0xc6", "0xc7",
- "0xc8", "0xc9", "0xca", "0xcb", "0xcc", "0xcd", "0xce", "0xcf",
- "0xd0", "0xd1", "0xd2", "0xd3", "0xd4", "0xd5", "0xd6", "0xd7",
- "0xd8", "0xd9", "0xda", "0xdb", "0xdc", "0xdd", "0xde", "0xdf",
- "0xe0", "0xe1", "0xe2", "0xe3", "0xe4", "0xe5", "0xe6", "0xe7",
- "0xe8", "0xe9", "0xea", "0xeb", "0xec", "0xed", "0xee", "0xef",
- "0xf0", "0xf1", "0xf2", "0xf3", "0xf4", "0xf5", "0xf6", "0xf7",
- "0xf8", "0xf9", "0xfa", "0xfb", "0xfc", "0xfd", "0xfe", "0xff",
-};
-
-char __unctrllen[256] = {
- 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 2,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4,
-};