Copyright (c) 1980 Regents of the University of California.
All rights reserved. The Berkeley software License Agreement
specifies the terms and conditions for redistribution.
@(#)curses.3 6.2 (Berkeley) 04/15/86
All rights reserved. The Berkeley software License Agreement
specifies the terms and conditions for redistribution.
@(#)curses.3 6.2 (Berkeley) 04/15/86
CURSES 3X ""
C 4 NAME
curses - screen functions with ``optimal'' cursor motion
SYNOPSIS
# include <curses.h> cc ...
-lcurses -ltermcap 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
refresh() tells the routines to make the current screen look like the new one.
In order to initialize the routines, the routine
initscr() must be called before any of the other routines that deal with windows and
screens are used. The routine
endwin() should always called before exiting.
SEE ALSO
"Screen Updating and Cursor Movement Optimization: A Library Package," Ken Arnold,
ioctl(2), getenv(3), tty(4), termcap(5)
AUTHOR
Ken Arnold
FUNCTIONS
addch(ch) add a character to \*s addstr(str) add a string to \*s box(win,vert,hor) draw a box around a window baudrate() return current baud rate cbreak() set cbreak mode clear() clear \*s clearok(scr,boolf) set clear flag for scr clrtobot() clear to bottom on \*s clrtoeol() clear to end of line on \*s delch() delete a character deleteln() delete a line delwin(win) delete \*w echo() set echo mode endwin() end window modes erase() erase \*s erasechar() return user's erase char flusok(win,boolf) set flush-on-refresh flag for \*w fullname(termbuf,name) get full name from termbuf getch() get a char through \*s getcap(name) get terminal capability name getstr(str) get a string through \*s gettmode() get tty modes getyx(win,y,x) get \*(yx co-ordinates idlok(win,boolf) set use-insert/delete-line for \*w inch() get char at current \*(yx co-ordinates initscr() initialize screens insch(c) insert a char insertln() insert a line killchar() return user's kill char leaveok(win,boolf) set leave flag for \*w longname(termbuf,name) get long name from termbuf move(y,x) move to \*(yx on \*s mvcur(lasty,lastx,newy,newx) actually move cursor mvwin(win,y,x) move \*w pos to \*(yx newwin(lines,cols,begin_y,begin_x) create a new window nl() set newline mapping nocbreak() unset cbreak mode noecho() unset echo mode nonl() unset newline mapping noraw() unset raw mode overlay(win1,win2) overlay win1 on win2 overwrite(win1,win2) overwrite win1 on top of win2 printw(fmt,arg1,arg2,...) printf on \*s raw() set raw mode refresh() make current screen look like \*s resetty() reset tty flags to stored value savetty() stored current tty flags scanw(fmt,arg1,arg2,...) scanf through \*s scroll(win) scroll \*w one line scrollok(win,boolf) set scroll flag setterm(name) set term variables for name standend() end standout mode standout() start standout mode subwin(win,lines,cols,begin_y,begin_x) create a subwindow touchline(win,y,sx,ex) mark line y sx through sy as changed touchoverlap(win1,win2) mark overlap of win1 on win2 as changed touchwin(win) \*(lqchange\*(rq all of \*w unctrl(ch) printable version of ch waddch(win,ch) add char to \*w waddstr(win,str) add string to \*w wclear(win) clear \*w wclrtobot(win) clear to bottom of \*w wclrtoeol(win) clear to end of line on \*w wdelch(win,c) delete char from \*w wdeleteln(win) delete line from \*w werase(win) erase \*w wgetch(win) get a char through \*w wgetstr(win,str) get a string through \*w winch(win) get char at current \*(yx in \*w winsch(win,c) insert char into \*w winsertln(win) insert line into \*w wmove(win,y,x) set current \*(yx co-ordinates on \*w wprintw(win,fmt,arg1,arg2,...) printf on \*w wrefresh(win) make screen look like \*w wscanw(win,fmt,arg1,arg2,...) scanf through \*w wstandend(win) end standout mode on \*w wstandout(win) start standout mode on \*wBUGSgetch() , getstr() , and scanw() have been rarely used, and are probably buggy.
Insert/delete line and char sequences are not used as often as they should be, and scrolling regions are not used at all.