mirror of
https://github.com/GnoConsortium/gno.git
synced 2024-12-05 10:52:07 +00:00
First libcurses commit with changes for GNO
This commit is contained in:
parent
4079986d8b
commit
a7b5aa5c8a
@ -50,9 +50,9 @@ static char sccsid[] = "@(#)ex1.c 8.1 (Berkeley) 6/4/93";
|
||||
#define YSIZE 10
|
||||
#define XSIZE 20
|
||||
|
||||
int quit();
|
||||
void quit(int sig, int code);
|
||||
|
||||
main()
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int i, j, c;
|
||||
size_t len;
|
||||
@ -76,7 +76,7 @@ main()
|
||||
c = getchar();
|
||||
switch(c) {
|
||||
case 'q': /* Quit on 'q' */
|
||||
quit();
|
||||
quit(0, 0);
|
||||
break;
|
||||
case 's': /* Go into standout mode on 's' */
|
||||
standout();
|
||||
@ -94,9 +94,9 @@ main()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
quit()
|
||||
#pragma databank 1
|
||||
void
|
||||
quit(int sig, int code)
|
||||
{
|
||||
erase(); /* Terminate by erasing the screen */
|
||||
refresh();
|
||||
@ -106,7 +106,17 @@ quit()
|
||||
putchar('\n');
|
||||
exit(0);
|
||||
}
|
||||
#pragma databank 0
|
||||
|
||||
#ifdef __GNO__
|
||||
int tcsetattr(int fd, int action, const struct termios *tt)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int tcgetattr(int fd, struct termios *tt)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -1,22 +1,28 @@
|
||||
# From: @(#)Makefile 8.2 (Berkeley) 1/2/94
|
||||
# $Id: Makefile,v 1.1 1997/10/01 02:57:00 gdr Exp $
|
||||
# $Id: Makefile,v 1.2 1998/01/26 06:08:43 taubert Exp $
|
||||
|
||||
CFLAGS+=#-DTFILE=\"/dev/ttyp0\"
|
||||
CFLAGS+=-D_CURSES_PRIVATE -I${.CURDIR}
|
||||
LDADD+= -ltermcap
|
||||
#CFLAGS+=#-DTFILE=\"/dev/ttyp0\"
|
||||
CFLAGS+=-D_CURSES_PRIVATE -I${PWD}
|
||||
#LDADD+= -ltermcap
|
||||
LIB= curses
|
||||
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 putchar.c refresh.c scanw.c scroll.c \
|
||||
overwrite.c printw.c _putchar.c putchar.c refresh.c scroll.c \
|
||||
setterm.c standout.c toucholap.c touchwin.c tscroll.c tstp.c tty.c \
|
||||
unctrl.c
|
||||
# Having trouble with this puppy
|
||||
_SRCS= scanw.c
|
||||
MAN3= curses.3
|
||||
|
||||
beforeinstall:
|
||||
-cd ${.CURDIR}; cmp -s curses.h ${DESTDIR}/usr/include/curses.h || \
|
||||
install -c -o ${BINOWN} -g ${BINGRP} -m 444 curses.h \
|
||||
${DESTDIR}/usr/include
|
||||
#beforeinstall:
|
||||
# -cd ${.CURDIR}; cmp -s curses.h ${DESTDIR}/usr/include/curses.h || \
|
||||
# install -c -o ${BINOWN} -g ${BINGRP} -m 444 curses.h \
|
||||
# ${DESTDIR}/usr/include
|
||||
|
||||
.include <bsd.lib.mk>
|
||||
CFLAGS+=-Slibcurses_
|
||||
OPTIMIZE=79
|
||||
DEBUG= 25
|
||||
|
||||
.INCLUDE: /src/gno/lib/lib.mk
|
||||
|
46
lib/libcurses/_putchar.c
Normal file
46
lib/libcurses/_putchar.c
Normal file
@ -0,0 +1,46 @@
|
||||
/*
|
||||
* 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. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. 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.
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char sccsid[] = "@(#)_putchar.c 8.2 (Berkeley) 5/4/94";
|
||||
#endif /* not lint */
|
||||
|
||||
#include "curses.h"
|
||||
|
||||
int
|
||||
_putchar(int ch)
|
||||
{
|
||||
__cputchar(ch);
|
||||
return 0;
|
||||
}
|
||||
|
@ -45,11 +45,7 @@ static char sccsid[] = "@(#)addbytes.c 8.4 (Berkeley) 5/4/94";
|
||||
* 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;
|
||||
__waddbytes(WINDOW *win, const char *bytes, int count, int so)
|
||||
{
|
||||
static char blanks[] = " ";
|
||||
register int c, newx, x, y;
|
||||
@ -155,3 +151,4 @@ newline: if (y == win->maxy - 1) {
|
||||
SYNCH_OUT;
|
||||
return (OK);
|
||||
}
|
||||
|
||||
|
@ -43,9 +43,7 @@ static char sccsid[] = "@(#)addch.c 8.2 (Berkeley) 5/4/94";
|
||||
*
|
||||
*/
|
||||
int
|
||||
waddch(win, ch)
|
||||
WINDOW *win;
|
||||
int ch;
|
||||
waddch(WINDOW *win, int ch)
|
||||
{
|
||||
__LDATA buf;
|
||||
|
||||
@ -55,12 +53,11 @@ waddch(win, ch)
|
||||
}
|
||||
|
||||
int
|
||||
__waddch(win, dp)
|
||||
WINDOW *win;
|
||||
__LDATA *dp;
|
||||
__waddch(WINDOW *win, __LDATA *dp)
|
||||
{
|
||||
char buf[2];
|
||||
|
||||
buf[0] = dp->ch;
|
||||
return (__waddbytes(win, buf, 1, dp->attr & __STANDOUT));
|
||||
}
|
||||
|
||||
|
@ -46,10 +46,7 @@ static char sccsid[] = "@(#)addnstr.c 8.2 (Berkeley) 5/4/94";
|
||||
* entire string.
|
||||
*/
|
||||
int
|
||||
waddnstr(win, s, n)
|
||||
WINDOW *win;
|
||||
const char *s;
|
||||
int n;
|
||||
waddnstr(WINDOW *win, const char *s, int n)
|
||||
{
|
||||
size_t len;
|
||||
const char *p;
|
||||
@ -60,3 +57,4 @@ waddnstr(win, s, n)
|
||||
len = strlen(s);
|
||||
return (waddbytes(win, s, len));
|
||||
}
|
||||
|
||||
|
@ -43,9 +43,7 @@ static char sccsid[] = "@(#)box.c 8.2 (Berkeley) 5/4/94";
|
||||
* delimiting char, and "hor", as the horizontal one.
|
||||
*/
|
||||
int
|
||||
box(win, vert, hor)
|
||||
register WINDOW *win;
|
||||
int vert, hor;
|
||||
box(WINDOW *win, int vert, int hor)
|
||||
{
|
||||
register int endy, endx, i;
|
||||
register __LDATA *fp, *lp;
|
||||
@ -76,3 +74,4 @@ box(win, vert, hor)
|
||||
__touchwin(win);
|
||||
return (OK);
|
||||
}
|
||||
|
||||
|
@ -42,8 +42,7 @@ static char sccsid[] = "@(#)clear.c 8.2 (Berkeley) 5/4/94";
|
||||
* Clear the window.
|
||||
*/
|
||||
int
|
||||
wclear(win)
|
||||
register WINDOW *win;
|
||||
wclear(WINDOW *win)
|
||||
{
|
||||
if (werase(win) == OK) {
|
||||
win->flags |= __CLEAROK;
|
||||
@ -51,3 +50,4 @@ wclear(win)
|
||||
}
|
||||
return (ERR);
|
||||
}
|
||||
|
||||
|
@ -42,8 +42,7 @@ static char sccsid[] = "@(#)clrtobot.c 8.2 (Berkeley) 5/4/94";
|
||||
* Erase everything on the window.
|
||||
*/
|
||||
int
|
||||
wclrtobot(win)
|
||||
register WINDOW *win;
|
||||
wclrtobot(WINDOW *win)
|
||||
{
|
||||
register int minx, startx, starty, y;
|
||||
register __LDATA *sp, *end, *maxx;
|
||||
@ -73,3 +72,4 @@ wclrtobot(win)
|
||||
}
|
||||
return (OK);
|
||||
}
|
||||
|
||||
|
@ -42,8 +42,7 @@ static char sccsid[] = "@(#)clrtoeol.c 8.2 (Berkeley) 5/4/94";
|
||||
* Clear up to the end of line.
|
||||
*/
|
||||
int
|
||||
wclrtoeol(win)
|
||||
register WINDOW *win;
|
||||
wclrtoeol(WINDOW *win)
|
||||
{
|
||||
register int minx, x, y;
|
||||
register __LDATA *end, *maxx, *sp;
|
||||
@ -77,7 +76,3 @@ wclrtoeol(win)
|
||||
return (__touchline(win, y, x, win->maxx - 1, 0));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -49,8 +49,7 @@ static char sccsid[] = "@(#)cr_put.c 8.3 (Berkeley) 5/4/94";
|
||||
|
||||
/* Stub function for the users. */
|
||||
int
|
||||
mvcur(ly, lx, y, x)
|
||||
int ly, lx, y, x;
|
||||
mvcur(int ly, int lx, int y, int x)
|
||||
{
|
||||
return (__mvcur(ly, lx, y, x, 0));
|
||||
}
|
||||
@ -68,8 +67,7 @@ static int outcol, outline, destcol, destline;
|
||||
* 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;
|
||||
__mvcur(int ly, int lx, int y, int x, int in_refresh)
|
||||
{
|
||||
#ifdef DEBUG
|
||||
__CTRACE("mvcur: moving cursor from (%d, %d) to (%d, %d)\n",
|
||||
@ -85,8 +83,7 @@ __mvcur(ly, lx, y, x, in_refresh)
|
||||
}
|
||||
|
||||
static void
|
||||
fgoto(in_refresh)
|
||||
int in_refresh;
|
||||
fgoto(int in_refresh)
|
||||
{
|
||||
register int c, l;
|
||||
register char *cgp;
|
||||
@ -184,8 +181,7 @@ fgoto(in_refresh)
|
||||
static int plodcnt, plodflg;
|
||||
|
||||
static void
|
||||
plodput(c)
|
||||
int c;
|
||||
plodput(int c)
|
||||
{
|
||||
if (plodflg)
|
||||
--plodcnt;
|
||||
@ -194,8 +190,7 @@ plodput(c)
|
||||
}
|
||||
|
||||
static int
|
||||
plod(cnt, in_refresh)
|
||||
int cnt, in_refresh;
|
||||
plod(int cnt, int in_refresh)
|
||||
{
|
||||
register int i, j, k, soutcol, soutline;
|
||||
|
||||
@ -419,8 +414,7 @@ out: if (plodflg) {
|
||||
* the case where col > COLS, even if ts does not divide COLS.
|
||||
*/
|
||||
static int
|
||||
tabcol(col, ts)
|
||||
int col, ts;
|
||||
tabcol(int col, int ts)
|
||||
{
|
||||
int offset;
|
||||
|
||||
@ -431,3 +425,4 @@ tabcol(col, ts)
|
||||
offset = 0;
|
||||
return (col + ts - (col % ts) + offset);
|
||||
}
|
||||
|
@ -50,6 +50,8 @@ static char sccsid[] = "@(#)ctrace.c 8.2 (Berkeley) 10/5/93";
|
||||
|
||||
static FILE *tracefp; /* Curses debugging file descriptor. */
|
||||
|
||||
#pragma debug 0
|
||||
/* assume at least #pragma optimize 8 */
|
||||
void
|
||||
#ifdef __STDC__
|
||||
__CTRACE(const char *fmt, ...)
|
||||
@ -74,3 +76,4 @@ __CTRACE(fmt, va_alist)
|
||||
(void)fflush(tracefp);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -41,12 +41,10 @@ static char sccsid[] = "@(#)cur_hash.c 8.1 (Berkeley) 6/4/93";
|
||||
/*
|
||||
* __hash() is "hashpjw" from the Dragon Book, Aho, Sethi & Ullman, p.436.
|
||||
*/
|
||||
u_int
|
||||
__hash(s, len)
|
||||
unsigned char *s;
|
||||
int len;
|
||||
u_long
|
||||
__hash(unsigned char *s, int len)
|
||||
{
|
||||
register u_int h, g, i;
|
||||
u_long h, g, i;
|
||||
|
||||
h = 0;
|
||||
i = 0;
|
||||
@ -60,3 +58,4 @@ __hash(s, len)
|
||||
}
|
||||
return h;
|
||||
}
|
||||
|
@ -31,233 +31,167 @@
|
||||
.\"
|
||||
.\" @(#)curses.3 8.1 (Berkeley) 6/4/93
|
||||
.\"
|
||||
.TH CURSES 3 "September 1997" GNO "Library Routines"
|
||||
.SH NAME
|
||||
.BR curses
|
||||
\- screen functions with ``optimal
|
||||
.SH SYNOPSIS
|
||||
.BR occ
|
||||
.I -flags
|
||||
.B -L/usr/lib
|
||||
.I files
|
||||
.B -llibcurses
|
||||
.B -llibtermcap
|
||||
.SH DESCRIPTION
|
||||
.Dd June 4, 1993
|
||||
.Dt CURSES 3
|
||||
.Os BSD 4
|
||||
.Sh NAME
|
||||
.Nm curses
|
||||
.Nd screen functions with ``optimal'' cursor motion
|
||||
.Sh SYNOPSIS
|
||||
.Nm cc
|
||||
.Op Ar flags
|
||||
.Ar files
|
||||
.Fl lcurses ltermcap
|
||||
.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 the
|
||||
.BR refresh
|
||||
.Fn refresh
|
||||
tells the routines to make the current screen look like the new one.
|
||||
In order to initialize the routines, the routine
|
||||
.BR initscr
|
||||
.Fn initscr
|
||||
must be called before any of the other routines that deal with windows and
|
||||
screens are used. The routine
|
||||
.BR endwin
|
||||
.Fn endwin
|
||||
should be called before exiting.
|
||||
.SH SEE ALSO
|
||||
.BR ioctl (2),
|
||||
.BR getenv (3),
|
||||
.BR tty (4),
|
||||
.BR termcap (5)
|
||||
.sp 1
|
||||
.I Screen Updating and Cursor Movement Optimization: A Library Package
|
||||
by Ken Arnold.
|
||||
.SH AUTHOR
|
||||
Ken Arnold
|
||||
.SH FUNCTIONS
|
||||
.\" These were originally in a table layout
|
||||
.IP \fBaddch\fR(\fIch\fR)
|
||||
add a character to
|
||||
.IR stdscr
|
||||
.IP \fBaddstr\fR(\fIstr\fR)
|
||||
add a string to
|
||||
.IR stdscr
|
||||
.IP \fBbox\fR(\fIwin\fR,\fIvert\fR,\fIhor\fR)
|
||||
draw a box around a window
|
||||
.IP \fBcbreak\fR()
|
||||
set cbreak mode
|
||||
.IP \fBclear\fR()
|
||||
clear
|
||||
.IR stdscr
|
||||
.IP \fBclearok\fR(\fIscr\fR,\fIboolf\fR)
|
||||
set clear flag for
|
||||
.IR scr
|
||||
.IP \fBclrtobot\fR()
|
||||
clear to bottom on
|
||||
.IR stdscr
|
||||
.IP \fBclrtoeol\fR()
|
||||
clear to end of line on
|
||||
.IR stdscr
|
||||
.IP \fBdelch\fR()
|
||||
delete a character
|
||||
.IP \fBdeleteln\fR()
|
||||
delete a line
|
||||
.IP \fBdelwin\fR(\fIwin\fR)
|
||||
delete
|
||||
.IR stdscr
|
||||
.IP \fBecho\fR()
|
||||
set echo mode
|
||||
.IP \fBendwin\fR()
|
||||
end window modes
|
||||
.IP \fBerase\fR()
|
||||
erase
|
||||
.IR stdscr
|
||||
.IP \fBflusok\fR(\fIwin\fR,\fIboolf\fR)
|
||||
set flush-on-refresh flag for
|
||||
.IR win
|
||||
.IP \fBgetch\fR()
|
||||
get a char through
|
||||
.IR stdscr
|
||||
.IP \fBgetcap\fR(\fIname\fR)
|
||||
get terminal capability
|
||||
.IR name
|
||||
.IP \fBgetstr\fR(\fIstr\fR)
|
||||
get a string through
|
||||
.IR stdscr
|
||||
.IP \fBgettmode\fR()
|
||||
get tty modes
|
||||
.IP \fBgetyx\fR(\fIwin\fR,\fIy\fR,\fIx\fR)
|
||||
get \fR(\fIy\fR,\fIx\fR) co-ordinates
|
||||
.IP \fBinch\fR()
|
||||
get char at current \fR(\fIy\fR,\fIx\fR) co-ordinates
|
||||
.IP \fBinitscr\fR()
|
||||
initialize screens
|
||||
.IP \fBinsch\fR(\fIc\fR)
|
||||
insert a char
|
||||
.IP \fBinsertln\fR()
|
||||
insert a line
|
||||
.IP \fBleaveok\fR(\fIwin\fR,\fIboolf\fR)
|
||||
set leave flag for
|
||||
.IR stdscr
|
||||
.IP \fBlongname\fR(\fItermbuf\fR,\fIname\fR)
|
||||
get long name from
|
||||
.IR termbuf
|
||||
.IP \fBmove\fR(\fIy\fR,\fIx\fR)
|
||||
move to \fR(\fIy\fR,\fIx\fR) on
|
||||
.IR stdscr
|
||||
.IP \fBmvcur\fR(\fIlasty\fR,\fIlastx\fR,\fInewy\fR,\fInewx\fR)
|
||||
actually move cursor
|
||||
.IP \fBnewwin\fR(\fIlines\fR,\fIcols\fR,\fIbegin_y\fR,\fIbegin_x\fR)
|
||||
create a new window
|
||||
.IP \fBnl\fR()
|
||||
set newline mapping
|
||||
.IP \fBnocbreak\fR()
|
||||
unset cbreak mode
|
||||
.IP \fBnoecho\fR()
|
||||
unset echo mode
|
||||
.IP \fBnonl\fR()
|
||||
unset newline mapping
|
||||
.IP \fBnoraw\fR()
|
||||
unset raw mode
|
||||
.IP \fBoverlay\fR(\fIwin1\fR,\fIwin2\fR)
|
||||
overlay win1 on win2
|
||||
.IP \fBoverwrite\fR(\fIwin1\fR,\fIwin2\fR)
|
||||
overwrite win1 on top of win2
|
||||
.IP \fBprintw\fR(\fIfmt\fR,\fIarg1\fR,\fIarg2\fR,...)
|
||||
printf on
|
||||
.IR stdscr
|
||||
.IP \fBraw\fR()
|
||||
set raw mode
|
||||
.IP \fBrefresh\fR()
|
||||
make current screen look like
|
||||
.IR stdscr
|
||||
.IP \fBresetty\fR()
|
||||
reset tty flags to stored value
|
||||
.IP \fBsavetty\fR()
|
||||
stored current tty flags
|
||||
.IP \fBscanw\fR(\fIfmt\fR,\fIarg1\fR,\fIarg2\fR,...)
|
||||
scanf through
|
||||
.IR stdscr
|
||||
.IP \fBscroll\fR(\fIwin\fR)
|
||||
scroll
|
||||
.IR win
|
||||
.Sh SEE ALSO
|
||||
.Xr ioctl 2 ,
|
||||
.Xr getenv 3 ,
|
||||
.Xr tty 4 ,
|
||||
.Xr termcap 5
|
||||
.Rs
|
||||
.%T Screen Updating and Cursor Movement Optimization: A Library Package
|
||||
.%A Ken Arnold
|
||||
.Re
|
||||
.Sh AUTHOR
|
||||
.An Ken Arnold
|
||||
.Sh FUNCTIONS
|
||||
.Bl -column "subwin(win,lines,cols,begin_y,begin_x) "
|
||||
.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
|
||||
.IP \fBscrollok\fR(\fIwin\fR,\fIboolf\fR)
|
||||
set scroll flag
|
||||
.IP \fBsetterm\fR(\fIname\fR)
|
||||
set term variables for name
|
||||
.IP \fBstandend\fR()
|
||||
end standout mode
|
||||
.IP \fBstandout\fR()
|
||||
start standout mode
|
||||
.IP \fBsubwin\fR(\fIwin\fR,\fIlines\fR,\fIcols\fR,\fIbegin_y\fR,\fIbegin_x\fR)
|
||||
create a subwindow
|
||||
.IP \fBtouchline\fR(\fIwin\fR,\fIy\fR,\fIsx\fR,\fIex\fR)
|
||||
mark line
|
||||
.IR y
|
||||
.IR sx
|
||||
.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
|
||||
.IR sy
|
||||
.Em sy
|
||||
as changed
|
||||
.IP \fBtouchoverlap\fR(\fIwin1\fR,\fIwin2\fR)
|
||||
mark overlap of
|
||||
.IR win1
|
||||
.It touchoverlap(win1,win2) mark overlap of
|
||||
.Em win1
|
||||
on
|
||||
.IR win2
|
||||
.Em win2
|
||||
as changed
|
||||
.IP \fBtouchwin\fR(\fIwin\fR)
|
||||
change all of
|
||||
.IR win
|
||||
.IP \fBunctrl\fR(\fIch\fR)
|
||||
printable version of
|
||||
.IR ch
|
||||
.IP \fBwaddch\fR(\fIwin\fR,\fIch\fR)
|
||||
add char to
|
||||
.IR win
|
||||
.IP \fBwaddstr\fR(\fIwin\fR,\fIstr\fR)
|
||||
add string to
|
||||
.IR win
|
||||
.IP \fBwclear\fR(\fIwin\fR)
|
||||
clear
|
||||
.IR win
|
||||
.IP \fBwclrtobot\fR(\fIwin\fR)
|
||||
clear to bottom of
|
||||
.IR win
|
||||
.IP \fBwclrtoeol\fR(\fIwin\fR)
|
||||
clear to end of line on
|
||||
.IR win
|
||||
.IP \fBwdelch\fR(\fIwin\fR,\fIc\fR)
|
||||
delete char from
|
||||
.IR win
|
||||
.IP \fBwdeleteln\fR(\fIwin\fR)
|
||||
delete line from
|
||||
.IR win
|
||||
.IP \fBwerase\fR(\fIwin\fR)
|
||||
erase
|
||||
.IR win
|
||||
.IP \fBwgetch\fR(\fIwin\fR)
|
||||
get a char through
|
||||
.IR win
|
||||
.IP \fBwgetstr\fR(\fIwin\fR,\fIstr\fR)
|
||||
get a string through
|
||||
.IR win
|
||||
.IP \fBwinch\fR(\fIwin\fR)
|
||||
get char at current \fR(\fIy\fR,\fIx\fR) in
|
||||
.IR win
|
||||
.IP \fBwinsch\fR(\fIwin\fR,\fIc\fR)
|
||||
insert char into
|
||||
.IR win
|
||||
.IP \fBwinsertln\fR(\fIwin\fR)
|
||||
insert line into
|
||||
.IR win
|
||||
.IP \fBwmove\fR(\fIwin\fR,\fIy\fR,\fIx\fR)
|
||||
set current \fR(\fIy\fR,\fIx\fR) co-ordinates on
|
||||
.IR win
|
||||
.IP \fBwprintw\fR(\fIwin\fR,\fIfmt\fR,\fIarg1\fR,\fIarg2\fR,...)
|
||||
printf on
|
||||
.IR win
|
||||
.IP \fBwrefresh\fR(\fIwin\fR)
|
||||
make screen look like
|
||||
.IR win
|
||||
.IP \fBwscanw\fR(\fIwin\fR,\fIfmt\fR,\fIarg1\fR,\fIarg2\fR,...)
|
||||
scanf through
|
||||
.IR win
|
||||
.IP \fBwstandend\fR(\fIwin\fR)
|
||||
end standout mode on
|
||||
.IR win
|
||||
.IP \fBwstandout\fR(\fIwin\fR)
|
||||
start standout mode on
|
||||
.IR win
|
||||
.RE
|
||||
.SH HISTORY
|
||||
This package first appeared in 4.0BSD.
|
||||
.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,c) 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 HISTORY
|
||||
The
|
||||
.Nm
|
||||
package appeared in
|
||||
.Bx 4.0 .
|
||||
|
263
lib/libcurses/curses.3G
Normal file
263
lib/libcurses/curses.3G
Normal file
@ -0,0 +1,263 @@
|
||||
.\" 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. All advertising materials mentioning features or use of this software
|
||||
.\" must display the following acknowledgement:
|
||||
.\" This product includes software developed by the University of
|
||||
.\" California, Berkeley and its contributors.
|
||||
.\" 4. 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
|
||||
.\"
|
||||
.TH CURSES 3 "September 1997" GNO "Library Routines"
|
||||
.SH NAME
|
||||
.BR curses
|
||||
\- screen functions with ``optimal
|
||||
.SH SYNOPSIS
|
||||
.BR occ
|
||||
.I -flags
|
||||
.B -L/usr/lib
|
||||
.I files
|
||||
.B -llibcurses
|
||||
.B -llibtermcap
|
||||
.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 the
|
||||
.BR refresh
|
||||
tells the routines to make the current screen look like the new one.
|
||||
In order to initialize the routines, the routine
|
||||
.BR initscr
|
||||
must be called before any of the other routines that deal with windows and
|
||||
screens are used. The routine
|
||||
.BR endwin
|
||||
should be called before exiting.
|
||||
.SH SEE ALSO
|
||||
.BR ioctl (2),
|
||||
.BR getenv (3),
|
||||
.BR tty (4),
|
||||
.BR termcap (5)
|
||||
.sp 1
|
||||
.I Screen Updating and Cursor Movement Optimization: A Library Package
|
||||
by Ken Arnold.
|
||||
.SH AUTHOR
|
||||
Ken Arnold
|
||||
.SH FUNCTIONS
|
||||
.\" These were originally in a table layout
|
||||
.IP \fBaddch\fR(\fIch\fR)
|
||||
add a character to
|
||||
.IR stdscr
|
||||
.IP \fBaddstr\fR(\fIstr\fR)
|
||||
add a string to
|
||||
.IR stdscr
|
||||
.IP \fBbox\fR(\fIwin\fR,\fIvert\fR,\fIhor\fR)
|
||||
draw a box around a window
|
||||
.IP \fBcbreak\fR()
|
||||
set cbreak mode
|
||||
.IP \fBclear\fR()
|
||||
clear
|
||||
.IR stdscr
|
||||
.IP \fBclearok\fR(\fIscr\fR,\fIboolf\fR)
|
||||
set clear flag for
|
||||
.IR scr
|
||||
.IP \fBclrtobot\fR()
|
||||
clear to bottom on
|
||||
.IR stdscr
|
||||
.IP \fBclrtoeol\fR()
|
||||
clear to end of line on
|
||||
.IR stdscr
|
||||
.IP \fBdelch\fR()
|
||||
delete a character
|
||||
.IP \fBdeleteln\fR()
|
||||
delete a line
|
||||
.IP \fBdelwin\fR(\fIwin\fR)
|
||||
delete
|
||||
.IR stdscr
|
||||
.IP \fBecho\fR()
|
||||
set echo mode
|
||||
.IP \fBendwin\fR()
|
||||
end window modes
|
||||
.IP \fBerase\fR()
|
||||
erase
|
||||
.IR stdscr
|
||||
.IP \fBflusok\fR(\fIwin\fR,\fIboolf\fR)
|
||||
set flush-on-refresh flag for
|
||||
.IR win
|
||||
.IP \fBgetch\fR()
|
||||
get a char through
|
||||
.IR stdscr
|
||||
.IP \fBgetcap\fR(\fIname\fR)
|
||||
get terminal capability
|
||||
.IR name
|
||||
.IP \fBgetstr\fR(\fIstr\fR)
|
||||
get a string through
|
||||
.IR stdscr
|
||||
.IP \fBgettmode\fR()
|
||||
get tty modes
|
||||
.IP \fBgetyx\fR(\fIwin\fR,\fIy\fR,\fIx\fR)
|
||||
get \fR(\fIy\fR,\fIx\fR) co-ordinates
|
||||
.IP \fBinch\fR()
|
||||
get char at current \fR(\fIy\fR,\fIx\fR) co-ordinates
|
||||
.IP \fBinitscr\fR()
|
||||
initialize screens
|
||||
.IP \fBinsch\fR(\fIc\fR)
|
||||
insert a char
|
||||
.IP \fBinsertln\fR()
|
||||
insert a line
|
||||
.IP \fBleaveok\fR(\fIwin\fR,\fIboolf\fR)
|
||||
set leave flag for
|
||||
.IR stdscr
|
||||
.IP \fBlongname\fR(\fItermbuf\fR,\fIname\fR)
|
||||
get long name from
|
||||
.IR termbuf
|
||||
.IP \fBmove\fR(\fIy\fR,\fIx\fR)
|
||||
move to \fR(\fIy\fR,\fIx\fR) on
|
||||
.IR stdscr
|
||||
.IP \fBmvcur\fR(\fIlasty\fR,\fIlastx\fR,\fInewy\fR,\fInewx\fR)
|
||||
actually move cursor
|
||||
.IP \fBnewwin\fR(\fIlines\fR,\fIcols\fR,\fIbegin_y\fR,\fIbegin_x\fR)
|
||||
create a new window
|
||||
.IP \fBnl\fR()
|
||||
set newline mapping
|
||||
.IP \fBnocbreak\fR()
|
||||
unset cbreak mode
|
||||
.IP \fBnoecho\fR()
|
||||
unset echo mode
|
||||
.IP \fBnonl\fR()
|
||||
unset newline mapping
|
||||
.IP \fBnoraw\fR()
|
||||
unset raw mode
|
||||
.IP \fBoverlay\fR(\fIwin1\fR,\fIwin2\fR)
|
||||
overlay win1 on win2
|
||||
.IP \fBoverwrite\fR(\fIwin1\fR,\fIwin2\fR)
|
||||
overwrite win1 on top of win2
|
||||
.IP \fBprintw\fR(\fIfmt\fR,\fIarg1\fR,\fIarg2\fR,...)
|
||||
printf on
|
||||
.IR stdscr
|
||||
.IP \fBraw\fR()
|
||||
set raw mode
|
||||
.IP \fBrefresh\fR()
|
||||
make current screen look like
|
||||
.IR stdscr
|
||||
.IP \fBresetty\fR()
|
||||
reset tty flags to stored value
|
||||
.IP \fBsavetty\fR()
|
||||
stored current tty flags
|
||||
.IP \fBscanw\fR(\fIfmt\fR,\fIarg1\fR,\fIarg2\fR,...)
|
||||
scanf through
|
||||
.IR stdscr
|
||||
.IP \fBscroll\fR(\fIwin\fR)
|
||||
scroll
|
||||
.IR win
|
||||
one line
|
||||
.IP \fBscrollok\fR(\fIwin\fR,\fIboolf\fR)
|
||||
set scroll flag
|
||||
.IP \fBsetterm\fR(\fIname\fR)
|
||||
set term variables for name
|
||||
.IP \fBstandend\fR()
|
||||
end standout mode
|
||||
.IP \fBstandout\fR()
|
||||
start standout mode
|
||||
.IP \fBsubwin\fR(\fIwin\fR,\fIlines\fR,\fIcols\fR,\fIbegin_y\fR,\fIbegin_x\fR)
|
||||
create a subwindow
|
||||
.IP \fBtouchline\fR(\fIwin\fR,\fIy\fR,\fIsx\fR,\fIex\fR)
|
||||
mark line
|
||||
.IR y
|
||||
.IR sx
|
||||
through
|
||||
.IR sy
|
||||
as changed
|
||||
.IP \fBtouchoverlap\fR(\fIwin1\fR,\fIwin2\fR)
|
||||
mark overlap of
|
||||
.IR win1
|
||||
on
|
||||
.IR win2
|
||||
as changed
|
||||
.IP \fBtouchwin\fR(\fIwin\fR)
|
||||
change all of
|
||||
.IR win
|
||||
.IP \fBunctrl\fR(\fIch\fR)
|
||||
printable version of
|
||||
.IR ch
|
||||
.IP \fBwaddch\fR(\fIwin\fR,\fIch\fR)
|
||||
add char to
|
||||
.IR win
|
||||
.IP \fBwaddstr\fR(\fIwin\fR,\fIstr\fR)
|
||||
add string to
|
||||
.IR win
|
||||
.IP \fBwclear\fR(\fIwin\fR)
|
||||
clear
|
||||
.IR win
|
||||
.IP \fBwclrtobot\fR(\fIwin\fR)
|
||||
clear to bottom of
|
||||
.IR win
|
||||
.IP \fBwclrtoeol\fR(\fIwin\fR)
|
||||
clear to end of line on
|
||||
.IR win
|
||||
.IP \fBwdelch\fR(\fIwin\fR,\fIc\fR)
|
||||
delete char from
|
||||
.IR win
|
||||
.IP \fBwdeleteln\fR(\fIwin\fR)
|
||||
delete line from
|
||||
.IR win
|
||||
.IP \fBwerase\fR(\fIwin\fR)
|
||||
erase
|
||||
.IR win
|
||||
.IP \fBwgetch\fR(\fIwin\fR)
|
||||
get a char through
|
||||
.IR win
|
||||
.IP \fBwgetstr\fR(\fIwin\fR,\fIstr\fR)
|
||||
get a string through
|
||||
.IR win
|
||||
.IP \fBwinch\fR(\fIwin\fR)
|
||||
get char at current \fR(\fIy\fR,\fIx\fR) in
|
||||
.IR win
|
||||
.IP \fBwinsch\fR(\fIwin\fR,\fIc\fR)
|
||||
insert char into
|
||||
.IR win
|
||||
.IP \fBwinsertln\fR(\fIwin\fR)
|
||||
insert line into
|
||||
.IR win
|
||||
.IP \fBwmove\fR(\fIwin\fR,\fIy\fR,\fIx\fR)
|
||||
set current \fR(\fIy\fR,\fIx\fR) co-ordinates on
|
||||
.IR win
|
||||
.IP \fBwprintw\fR(\fIwin\fR,\fIfmt\fR,\fIarg1\fR,\fIarg2\fR,...)
|
||||
printf on
|
||||
.IR win
|
||||
.IP \fBwrefresh\fR(\fIwin\fR)
|
||||
make screen look like
|
||||
.IR win
|
||||
.IP \fBwscanw\fR(\fIwin\fR,\fIfmt\fR,\fIarg1\fR,\fIarg2\fR,...)
|
||||
scanf through
|
||||
.IR win
|
||||
.IP \fBwstandend\fR(\fIwin\fR)
|
||||
end standout mode on
|
||||
.IR win
|
||||
.IP \fBwstandout\fR(\fIwin\fR)
|
||||
start standout mode on
|
||||
.IR win
|
||||
.RE
|
||||
.SH HISTORY
|
||||
This package first appeared in 4.0BSD.
|
@ -52,6 +52,7 @@ int __usecs = 0; /*
|
||||
* region (used only if insert/delete
|
||||
* line capabilities absent)
|
||||
*/
|
||||
#ifndef __GNO__
|
||||
char AM, BS, CA, DA, DB, 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,
|
||||
@ -62,6 +63,18 @@ char *AL, *BC, *BT, *CD, *CE, *CL, *CM, *CR, *CS, *DC, *DL,
|
||||
*VE, *al, *dl, *sf, *sr,
|
||||
*AL_PARM, *DL_PARM, *UP_PARM, *DOWN_PARM, *LEFT_PARM,
|
||||
*RIGHT_PARM;
|
||||
#else
|
||||
char AM, BS, CA, DA, DB, EO, HC, IN, MI, MS, NC, NS, OS,
|
||||
UL, XB, XN, XT, XS, XX;
|
||||
char *AL, *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, *US, *VB, *VS,
|
||||
*VE, *al, *dl, *sf, *sr,
|
||||
*AL_PARM, *DL_PARM, *UP_PARM, *DOWN_PARM, *LEFT_PARM,
|
||||
*RIGHT_PARM;
|
||||
#endif
|
||||
/*
|
||||
* Public.
|
||||
*
|
||||
@ -78,3 +91,4 @@ 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. */
|
||||
|
||||
|
@ -76,9 +76,11 @@
|
||||
#undef B57600
|
||||
#undef B115200
|
||||
|
||||
#include <termios.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <termios.h>
|
||||
#ifndef __GNO__
|
||||
#include <sys/ioctl_compat.h> /* For sgttyb and related */
|
||||
#endif
|
||||
|
||||
#define bool char
|
||||
#define reg register
|
||||
@ -163,7 +165,7 @@ typedef struct {
|
||||
#define __ISPASTEOL 0x02 /* Cursor is past end of line */
|
||||
#define __FORCEPAINT 0x04 /* Force a repaint of the line */
|
||||
u_int flags;
|
||||
u_int hash; /* Hash value for the line. */
|
||||
u_long 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. */
|
||||
@ -346,7 +348,7 @@ int __waddbytes __P((WINDOW *, const char *, int, int));
|
||||
/* Private functions. */
|
||||
#ifdef _CURSES_PRIVATE
|
||||
void __CTRACE __P((const char *, ...));
|
||||
u_int __hash __P((char *, int));
|
||||
u_long __hash __P((char *, int));
|
||||
void __id_subwins __P((WINDOW *));
|
||||
int __mvcur __P((int, int, int, int, int));
|
||||
void __restore_stophandler __P((void));
|
||||
@ -354,7 +356,7 @@ void __set_stophandler __P((void));
|
||||
void __set_subwin __P((WINDOW *, WINDOW *));
|
||||
void __set_scroll_region __P((int, int, int, int));
|
||||
void __startwin __P((void));
|
||||
void __stop_signal_handler __P((int));
|
||||
void __stop_signal_handler __P((int, int));
|
||||
void __swflags __P((WINDOW *));
|
||||
int __touchline __P((WINDOW *, int, int, int, int));
|
||||
int __touchwin __P((WINDOW *));
|
||||
|
@ -44,8 +44,7 @@ static char sccsid[] = "@(#)delch.c 8.2 (Berkeley) 5/4/94";
|
||||
* Do an insert-char on the line, leaving (cury, curx) unchanged.
|
||||
*/
|
||||
int
|
||||
wdelch(win)
|
||||
register WINDOW *win;
|
||||
wdelch(WINDOW *win)
|
||||
{
|
||||
register __LDATA *end, *temp1, *temp2;
|
||||
|
||||
@ -61,3 +60,4 @@ wdelch(win)
|
||||
__touchline(win, win->cury, win->curx, win->maxx - 1, 0);
|
||||
return (OK);
|
||||
}
|
||||
|
||||
|
@ -44,8 +44,7 @@ static char sccsid[] = "@(#)deleteln.c 8.2 (Berkeley) 5/4/94";
|
||||
* Delete a line from the screen. It leaves (cury, curx) unchanged.
|
||||
*/
|
||||
int
|
||||
wdeleteln(win)
|
||||
register WINDOW *win;
|
||||
wdeleteln(WINDOW *win)
|
||||
{
|
||||
register int y, i;
|
||||
register __LINE *temp;
|
||||
@ -80,3 +79,4 @@ wdeleteln(win)
|
||||
__id_subwins(win);
|
||||
return (OK);
|
||||
}
|
||||
|
||||
|
@ -44,10 +44,8 @@ static char sccsid[] = "@(#)delwin.c 8.2 (Berkeley) 5/4/94";
|
||||
* Delete a window and release it back to the system.
|
||||
*/
|
||||
int
|
||||
delwin(win)
|
||||
register WINDOW *win;
|
||||
delwin(WINDOW *win)
|
||||
{
|
||||
|
||||
register WINDOW *wp, *np;
|
||||
|
||||
if (win->orig == NULL) {
|
||||
@ -78,3 +76,4 @@ delwin(win)
|
||||
free(win);
|
||||
return (OK);
|
||||
}
|
||||
|
||||
|
@ -42,10 +42,8 @@ static char sccsid[] = "@(#)erase.c 8.2 (Berkeley) 5/4/94";
|
||||
* Erases everything on the window.
|
||||
*/
|
||||
int
|
||||
werase(win)
|
||||
register WINDOW *win;
|
||||
werase(WINDOW *win)
|
||||
{
|
||||
|
||||
register int minx, y;
|
||||
register __LDATA *sp, *end, *start, *maxx;
|
||||
|
||||
@ -70,3 +68,4 @@ werase(win)
|
||||
}
|
||||
return (OK);
|
||||
}
|
||||
|
||||
|
@ -41,8 +41,7 @@ static char sccsid[] = "@(#)fullname.c 8.1 (Berkeley) 6/4/93";
|
||||
* This is assumed to be the last name in the list of aliases.
|
||||
*/
|
||||
char *
|
||||
fullname(bp, def)
|
||||
register char *bp, *def;
|
||||
fullname(char *bp, char *def)
|
||||
{
|
||||
register char *cp;
|
||||
|
||||
@ -58,3 +57,4 @@ fullname(bp, def)
|
||||
}
|
||||
return (def);
|
||||
}
|
||||
|
||||
|
@ -42,8 +42,7 @@ static char sccsid[] = "@(#)getch.c 8.2 (Berkeley) 5/4/94";
|
||||
* Read in a character from the window.
|
||||
*/
|
||||
int
|
||||
wgetch(win)
|
||||
register WINDOW *win;
|
||||
wgetch(WINDOW *win)
|
||||
{
|
||||
register int inp, weset;
|
||||
|
||||
@ -75,3 +74,4 @@ wgetch(win)
|
||||
nocbreak();
|
||||
return (inp);
|
||||
}
|
||||
|
||||
|
@ -42,9 +42,7 @@ static char sccsid[] = "@(#)getstr.c 8.2 (Berkeley) 5/4/94";
|
||||
* Get a string starting at (cury, curx).
|
||||
*/
|
||||
int
|
||||
wgetstr(win, str)
|
||||
register WINDOW *win;
|
||||
register char *str;
|
||||
wgetstr(WINDOW *win, char *str)
|
||||
{
|
||||
int c;
|
||||
|
||||
@ -55,3 +53,4 @@ wgetstr(win, str)
|
||||
return (ERR);
|
||||
return (OK);
|
||||
}
|
||||
|
||||
|
@ -42,8 +42,7 @@ static char sccsid[] = "@(#)id_subwins.c 8.2 (Berkeley) 5/4/94";
|
||||
* Re-sync the pointers to lines for all the subwindows.
|
||||
*/
|
||||
void
|
||||
__id_subwins(orig)
|
||||
register WINDOW *orig;
|
||||
__id_subwins(WINDOW *orig)
|
||||
{
|
||||
register WINDOW *win;
|
||||
register int oy, realy, y;
|
||||
@ -63,3 +62,4 @@ __id_subwins(orig)
|
||||
&orig->lines[oy]->line[win->ch_off];
|
||||
}
|
||||
}
|
||||
|
@ -43,9 +43,7 @@ static char sccsid[] = "@(#)idlok.c 8.2 (Berkeley) 5/4/94";
|
||||
* given window.
|
||||
*/
|
||||
void
|
||||
idlok(win, bf)
|
||||
WINDOW *win;
|
||||
int bf;
|
||||
idlok(WINDOW *win, int bf)
|
||||
{
|
||||
if (bf)
|
||||
win->flags |= __IDLINE;
|
||||
|
@ -45,7 +45,7 @@ static char sccsid[] = "@(#)initscr.c 8.2 (Berkeley) 5/4/94";
|
||||
* Initialize the current and standard screen.
|
||||
*/
|
||||
WINDOW *
|
||||
initscr()
|
||||
initscr(void)
|
||||
{
|
||||
register char *sp;
|
||||
|
||||
@ -93,3 +93,4 @@ initscr()
|
||||
|
||||
return (stdscr);
|
||||
}
|
||||
|
||||
|
@ -44,11 +44,8 @@ static char sccsid[] = "@(#)insch.c 8.2 (Berkeley) 5/4/94";
|
||||
* Do an insert-char on the line, leaving (cury, curx) unchanged.
|
||||
*/
|
||||
int
|
||||
winsch(win, ch)
|
||||
register WINDOW *win;
|
||||
int ch;
|
||||
winsch(WINDOW *win, int ch)
|
||||
{
|
||||
|
||||
register __LDATA *end, *temp1, *temp2;
|
||||
|
||||
end = &win->lines[win->cury]->line[win->curx];
|
||||
@ -72,3 +69,4 @@ winsch(win, ch)
|
||||
return (ERR);
|
||||
return (OK);
|
||||
}
|
||||
|
||||
|
@ -44,10 +44,8 @@ static char sccsid[] = "@(#)insertln.c 8.2 (Berkeley) 5/4/94";
|
||||
* Do an insert-line on the window, leaving (cury, curx) unchanged.
|
||||
*/
|
||||
int
|
||||
winsertln(win)
|
||||
register WINDOW *win;
|
||||
winsertln(WINDOW *win)
|
||||
{
|
||||
|
||||
register int y, i;
|
||||
register __LINE *temp;
|
||||
|
||||
@ -80,3 +78,4 @@ winsertln(win)
|
||||
__id_subwins(win);
|
||||
return (OK);
|
||||
}
|
||||
|
||||
|
@ -40,8 +40,7 @@ static char sccsid[] = "@(#)longname.c 8.1 (Berkeley) 6/4/93";
|
||||
* Fill in "def" with the long name of the terminal.
|
||||
*/
|
||||
char *
|
||||
longname(bp, def)
|
||||
register char *bp, *def;
|
||||
longname(char *bp, char *def)
|
||||
{
|
||||
register char *cp;
|
||||
|
||||
@ -54,3 +53,4 @@ longname(bp, def)
|
||||
}
|
||||
return (def);
|
||||
}
|
||||
|
||||
|
@ -42,11 +42,8 @@ static char sccsid[] = "@(#)move.c 8.2 (Berkeley) 5/4/94";
|
||||
* Moves the cursor to the given point.
|
||||
*/
|
||||
int
|
||||
wmove(win, y, x)
|
||||
register WINDOW *win;
|
||||
register int y, x;
|
||||
wmove(WINDOW *win, int y, int x)
|
||||
{
|
||||
|
||||
#ifdef DEBUG
|
||||
__CTRACE("wmove: (%d, %d)\n", y, x);
|
||||
#endif
|
||||
@ -60,3 +57,4 @@ wmove(win, y, x)
|
||||
win->lines[y]->flags &= ~__ISPASTEOL;
|
||||
return (OK);
|
||||
}
|
||||
|
||||
|
@ -42,9 +42,7 @@ static char sccsid[] = "@(#)mvwin.c 8.2 (Berkeley) 5/4/94";
|
||||
* Relocate the starting position of a window.
|
||||
*/
|
||||
int
|
||||
mvwin(win, by, bx)
|
||||
register WINDOW *win;
|
||||
register int by, bx;
|
||||
mvwin(WINDOW *win, int by, int bx)
|
||||
{
|
||||
register WINDOW *orig;
|
||||
register int dy, dx;
|
||||
@ -75,3 +73,4 @@ mvwin(win, by, bx)
|
||||
__touchwin(win);
|
||||
return (OK);
|
||||
}
|
||||
|
||||
|
@ -50,8 +50,7 @@ void __set_subwin __P((WINDOW *, WINDOW *));
|
||||
* Allocate space for and set up defaults for a new window.
|
||||
*/
|
||||
|