]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - man/curs_threads.3x
ncurses 6.4 - patch 20231001
[ncurses.git] / man / curs_threads.3x
index c058a14d899a536c7829959d0a794f4d3ba01069..7247a52721b6cc5f29826676cf5ae5179c2e9524 100644 (file)
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_threads.3x,v 1.41 2023/09/16 23:37:03 tom Exp $
-.TH curs_threads 3X 2023-09-16 "ncurses 6.4" "Library calls"
+.\" $Id: curs_threads.3x,v 1.46 2023/10/01 09:45:30 tom Exp $
+.TH curs_threads 3X 2023-10-01 "ncurses 6.4" "Library calls"
+.ie \n(.g .ds `` \(lq
+.el       .ds `` ``
+.ie \n(.g .ds '' \(rq
+.el       .ds '' ''
 .de bP
 .ie n  .IP \(bu 4
 .el    .IP \(bu 2
 ..
 .SH NAME
-\fB\%curs_threads\fP \-
-\fIcurses\fR thread support
+\fI\%NCURSES_WINDOW_CB\fP,
+\fI\%NCURSES_SCREEN_CB\fP,
+\fB\%get_escdelay\fP,
+\fB\%set_escdelay\fP,
+\fB\%set_tabsize\fP,
+\fB\%use_screen\fP,
+\fB\%use_window\fP \-
+\fIcurses\fR support for multi-threaded applications
 .SH SYNOPSIS
+.nf
 \fB#include <curses.h>\fP
-.sp
+.PP
+\fI/* data types */\fP
 \fBtypedef int (*NCURSES_WINDOW_CB)(WINDOW *, void *);\fP
-.br
 \fBtypedef int (*NCURSES_SCREEN_CB)(SCREEN *, void *);\fP
-.sp
+.PP
 \fBint get_escdelay(void);\fP
-.br
 \fBint set_escdelay(int \fIms\fB);\fR
-.br
 \fBint set_tabsize(int \fIcols\fB);\fR
-.sp
+.PP
 \fBint use_screen(SCREEN *\fIscr\fB, NCURSES_SCREEN_CB \fIfunc\fB, void *\fIdata\fB);\fR
-.br
 \fBint use_window(WINDOW *\fIwin\fB, NCURSES_WINDOW_CB \fIfunc\fB, void *\fIdata\fB);\fR
+.fi
 .SH DESCRIPTION
-This implementation can be configured to provide rudimentary support
-for multi-threaded applications.
-This makes a different set of libraries, e.g., \fBlibncursest\fP since
-the binary interfaces are different.
+The \fIncurses\fP library can be configured to support multi-threaded
+applications in a rudimentary way.
+Such configuration produces a different set of libraries,
+named \fIlibncursest\fP,
+for example,
+since doing so alters \fIncurses\fP's application binary interface
+(ABI).
 .PP
-Rather than modify the interfaces to pass a thread specifier to
-each function, it adds a few functions which can be used in any
-configuration which hide the mutex's needed to prevent concurrent
-use of the global variables when configured for threading.
+Instead of modifying the programming interface (API) to make
+\fIncurses\fP functions expect an additional argument specifying a
+thread,
+the library adds a few functions,
+usable in any configuration,
+that hide the \fImutexes\fP
+(mutual exclusion locks)
+needed to prevent concurrent access to variables shared by multiple
+threads of execution.
 .PP
-In addition to forcing access to members of the \fBWINDOW\fP structure
-to be via functions (see \fBcurs_opaque\fP(3X)),
-it makes functions of the common global variables,
-e.g.,
-COLORS,
-COLOR_PAIRS,
-COLS,
-ESCDELAY,
-LINES,
-TABSIZE
-curscr,
-newscr and
-ttytype.
-Those variables are maintained as read-only values, stored in the \fBSCREEN\fP
-structure.
+\fIncurses\fP threading support requires the use of functions to access
+members of the \fI\%WINDOW\fP structure (see \fBcurs_opaque\fP(3X)).
+It further makes functions of the common global variables
+\fB\%COLORS\fP,
+\fB\%COLOR_PAIRS\fP,
+\fB\%COLS\fP,
+\fB\%ESCDELAY\fP,
+\fB\%LINES\fP,
+\fB\%TABSIZE\fP,
+\fB\%curscr\fP,
+\fB\%newscr\fP,
+and
+\fB\%ttytype\fP,
+maintaining them as as read-only values in the \fISCREEN\fP structure.
 .PP
-Even this is not enough to make a thread-safe application using curses.
-A multi-threaded application would be expected to have threads updating
-separate windows (within the same device),
-or updating on separate screens (on different devices).
-Also, a few of the global variables are considered writable by some
-applications.
+Even this is not enough to make an application using \fIcurses\fP
+thread-safe.
+We would expect a multi-threaded application to have threads updating
+separate windows (on the same device),
+and separate screens (on different devices).
+Further,
+applications expect a few of the global variables to be writable.
 The functions described here address these special situations.
 .PP
-The ESCDELAY and TABSIZE global variables are modified by some applications.
+The \fB\%ESCDELAY\fP and \fB\%TABSIZE\fP global variables are modified
+by some applications.
 To modify them in any configuration,
-use the \fBset_escdelay\fP or \fBset_tabsize\fP functions.
+use the \fB\%set_escdelay\fP or \fB\%set_tabsize\fP functions.
 Other global variables are not modifiable.
+\fBget_escdelay\fP retrieves \fB\%ESCDELAY\fP's value.
 .PP
-The \fBget_escdelay\fP function returns the value for ESCDELAY.
-.PP
-The \fBuse_window\fP and \fBuse_screen\fP functions provide coarse
-granularity mutexes for their respective \fBWINDOW\fP and \fBSCREEN\fP
-parameters, and call a user-supplied function,
-passing it a \fIdata\fP parameter,
-and returning the value from the user-supplied function to the application.
+The \fBuse_window\fP and \fBuse_screen\fP functions provide
+coarse-grained mutexes for their respective \fI\%WINDOW\fP and
+\fI\%SCREEN\fP parameters;
+they call a user-supplied function,
+pass it a \fIdata\fP parameter,
+and return the value from the user-supplied function to the application.
 .\" ***************************************************************************
-.SS USAGE
-All of the ncurses library functions assume that the locale is not
+.SS Usage
+All \fIncurses\fP library functions assume that the locale is not
 altered during operation.
 In addition,
-they use data which is maintained within a hierarchy of scopes.
-.RS 3
+they use data that is maintained within a hierarchy of scopes.
 .bP
-global data, e.g., used in the low-level terminfo or termcap interfaces.
+global data used in the low-level \fIterminfo\fP or \fItermcap\fP
+interfaces
 .bP
-terminal data, e.g., associated with a call to \fBset_curterm\fP.
-The terminal data are initialized when screens are created.
+terminal data associated with a call to \fBset_curterm\fP(3X)
+.IP
+Terminal data are initialized when screens are created.
 .bP
-screen data, e.g., associated with a call to \fBnewterm\fP or \fBinitscr\fP.
+screen data associated with a call to \fBnewterm\fP(3X) or
+\fBinitscr\fP(3X)
 .bP
-window data, e.g., associated with a call to \fBnewwin\fP or \fBsubwin\fP.
+window data associated with a call to \fBnewwin\fP(3X) or
+\fBsubwin\fP(3X)
+.IP
 Windows are associated with screens.
-Pads are not necessarily associated with a particular screen.
+Pads are not necessarily associated with any particular screen.
 .IP
-Most curses applications operate on one or more windows within a single screen.
+Most \fIcurses\fP applications operate on one or more windows within a
+single screen.
 .bP
-reentrant, i.e., it uses only the data passed as parameters.
-.RE
+reentrant data associated with \*(``pure\*('' functions that alter no
+shared variables
 .PP
-This table lists the scope of data used for each symbol in the
-ncurses library when it is configured to support threading:
+The following table lists the scope of each symbol in the \fIncurses\fP
+library when configured to support multi-threaded applications.
 .PP
 .TS
 center tab(/);
-l l
-l l .
+lb lb
+lb l .
 Symbol/Scope
 =
 BC/global
-COLORS/screen (readonly)
+COLORS/screen (read-only)
 COLOR_PAIR/reentrant
-COLOR_PAIRS/screen (readonly)
-COLS/screen (readonly)
-ESCDELAY/screen (readonly, see \fBset_escdelay\fP)
-LINES/screen (readonly)
+COLOR_PAIRS/screen (read-only)
+COLS/screen (read-only)
+ESCDELAY/screen (read-only; see \fBset_escdelay\fP)
+LINES/screen (read-only)
 PAIR_NUMBER/reentrant
 PC/global
 SP/global
-TABSIZE/screen (readonly)
+TABSIZE/screen (read-only; see \fBset_tabsize\fP)
 UP/global
-acs_map/screen (readonly)
-add_wch/window (stdscr)
-add_wchnstr/window (stdscr)
-add_wchstr/window (stdscr)
-addch/window (stdscr)
-addchnstr/window (stdscr)
-addchstr/window (stdscr)
-addnstr/window (stdscr)
-addnwstr/window (stdscr)
-addstr/window (stdscr)
-addwstr/window (stdscr)
+acs_map/screen (read-only)
+add_wch/window (\fBstdscr\fP)
+add_wchnstr/window (\fBstdscr\fP)
+add_wchstr/window (\fBstdscr\fP)
+addch/window (\fBstdscr\fP)
+addchnstr/window (\fBstdscr\fP)
+addchstr/window (\fBstdscr\fP)
+addnstr/window (\fBstdscr\fP)
+addnwstr/window (\fBstdscr\fP)
+addstr/window (\fBstdscr\fP)
+addwstr/window (\fBstdscr\fP)
 assume_default_colors/screen
-attr_get/window (stdscr)
-attr_off/window (stdscr)
-attr_on/window (stdscr)
-attr_set/window (stdscr)
-attroff/window (stdscr)
-attron/window (stdscr)
-attrset/window (stdscr)
+attr_get/window (\fBstdscr\fP)
+attr_off/window (\fBstdscr\fP)
+attr_on/window (\fBstdscr\fP)
+attr_set/window (\fBstdscr\fP)
+attroff/window (\fBstdscr\fP)
+attron/window (\fBstdscr\fP)
+attrset/window (\fBstdscr\fP)
 baudrate/screen
 beep/screen
-bkgd/window (stdscr)
-bkgdset/window (stdscr)
-bkgrnd/window (stdscr)
-bkgrndset/window (stdscr)
-boolcodes/global (readonly)
-boolfnames/global (readonly)
-boolnames/global (readonly)
-border/window (stdscr)
-border_set/window (stdscr)
-box/window (stdscr)
-box_set/window (stdscr)
+bkgd/window (\fBstdscr\fP)
+bkgdset/window (\fBstdscr\fP)
+bkgrnd/window (\fBstdscr\fP)
+bkgrndset/window (\fBstdscr\fP)
+boolcodes/global (read-only)
+boolfnames/global (read-only)
+boolnames/global (read-only)
+border/window (\fBstdscr\fP)
+border_set/window (\fBstdscr\fP)
+box/window (\fBstdscr\fP)
+box_set/window (\fBstdscr\fP)
 can_change_color/terminal
 cbreak/screen
-chgat/window (stdscr)
-clear/window (stdscr)
+chgat/window (\fBstdscr\fP)
+clear/window (\fBstdscr\fP)
 clearok/window
-clrtobot/window (stdscr)
-clrtoeol/window (stdscr)
+clrtobot/window (\fBstdscr\fP)
+clrtoeol/window (\fBstdscr\fP)
 color_content/screen
-color_set/window (stdscr)
-copywin/window locks(source, target)
+color_set/window (\fBstdscr\fP)
+copywin/window (locks source, target)
 cur_term/terminal
 curs_set/screen
-curscr/screen (readonly)
-curses_version/global (readonly)
+curscr/screen (read-only)
+curses_version/global (read-only)
 def_prog_mode/terminal
 def_shell_mode/terminal
 define_key/screen
 del_curterm/screen
 delay_output/screen
-delch/window (stdscr)
-deleteln/window (stdscr)
-delscreen/global locks(screenlist, screen)
-delwin/global locks(windowlist)
+delch/window (\fBstdscr\fP)
+deleteln/window (\fBstdscr\fP)
+delscreen/global (locks screen list, screen)
+delwin/global (locks window list)
 derwin/screen
 doupdate/screen
-dupwin/screen locks(window)
+dupwin/screen (locks window)
 echo/screen
-echo_wchar/window (stdscr)
-echochar/window (stdscr)
+echo_wchar/window (\fBstdscr\fP)
+echochar/window (\fBstdscr\fP)
 endwin/screen
-erase/window (stdscr)
-erasechar/window (stdscr)
-erasewchar/window (stdscr)
+erase/window (\fBstdscr\fP)
+erasechar/window (\fBstdscr\fP)
+erasewchar/window (\fBstdscr\fP)
 filter/global
 flash/terminal
 flushinp/screen
-get_wch/screen (input-operation)
-get_wstr/screen (input-operation)
+get_wch/screen (input operation)
+get_wstr/screen (input operation)
 getattrs/window
 getbegx/window
 getbegy/window
 getbkgd/window
 getbkgrnd/window
 getcchar/reentrant
-getch/screen (input-operation)
+getch/screen (input operation)
 getcurx/window
 getcury/window
 getmaxx/window
 getmaxy/window
-getmouse/screen (input-operation)
-getn_wstr/screen (input-operation)
-getnstr/screen (input-operation)
+getmouse/screen (input operation)
+getn_wstr/screen (input operation)
+getnstr/screen (input operation)
 getparx/window
 getpary/window
-getstr/screen (input-operation)
-getwin/screen (input-operation)
+getstr/screen (input operation)
+getwin/screen (input operation)
 halfdelay/screen
 has_colors/terminal
 has_ic/terminal
 has_il/terminal
 has_key/screen
-hline/window (stdscr)
-hline_set/window (stdscr)
+hline/window (\fBstdscr\fP)
+hline_set/window (\fBstdscr\fP)
 idcok/window
 idlok/window
 immedok/window
-in_wch/window (stdscr)
-in_wchnstr/window (stdscr)
-in_wchstr/window (stdscr)
-inch/window (stdscr)
-inchnstr/window (stdscr)
-inchstr/window (stdscr)
+in_wch/window (\fBstdscr\fP)
+in_wchnstr/window (\fBstdscr\fP)
+in_wchstr/window (\fBstdscr\fP)
+inch/window (\fBstdscr\fP)
+inchnstr/window (\fBstdscr\fP)
+inchstr/window (\fBstdscr\fP)
 init_color/screen
 init_pair/screen
-initscr/global locks(screenlist)
-innstr/window (stdscr)
-innwstr/window (stdscr)
-ins_nwstr/window (stdscr)
-ins_wch/window (stdscr)
-ins_wstr/window (stdscr)
-insch/window (stdscr)
-insdelln/window (stdscr)
-insertln/window (stdscr)
-insnstr/window (stdscr)
-insstr/window (stdscr)
-instr/window (stdscr)
+initscr/global (locks screen list)
+innstr/window (\fBstdscr\fP)
+innwstr/window (\fBstdscr\fP)
+ins_nwstr/window (\fBstdscr\fP)
+ins_wch/window (\fBstdscr\fP)
+ins_wstr/window (\fBstdscr\fP)
+insch/window (\fBstdscr\fP)
+insdelln/window (\fBstdscr\fP)
+insertln/window (\fBstdscr\fP)
+insnstr/window (\fBstdscr\fP)
+insstr/window (\fBstdscr\fP)
+instr/window (\fBstdscr\fP)
 intrflush/terminal
-inwstr/window (stdscr)
+inwstr/window (\fBstdscr\fP)
 is_cleared/window
 is_idcok/window
 is_idlok/window
@@ -291,52 +314,52 @@ leaveok/window
 longname/screen
 mcprint/terminal
 meta/screen
-mouse_trafo/window (stdscr)
+mouse_trafo/window (\fBstdscr\fP)
 mouseinterval/screen
 mousemask/screen
-move/window (stdscr)
-mvadd_wch/window (stdscr)
-mvadd_wchnstr/window (stdscr)
-mvadd_wchstr/window (stdscr)
-mvaddch/window (stdscr)
-mvaddchnstr/window (stdscr)
-mvaddchstr/window (stdscr)
-mvaddnstr/window (stdscr)
-mvaddnwstr/window (stdscr)
-mvaddstr/window (stdscr)
-mvaddwstr/window (stdscr)
-mvchgat/window (stdscr)
+move/window (\fBstdscr\fP)
+mvadd_wch/window (\fBstdscr\fP)
+mvadd_wchnstr/window (\fBstdscr\fP)
+mvadd_wchstr/window (\fBstdscr\fP)
+mvaddch/window (\fBstdscr\fP)
+mvaddchnstr/window (\fBstdscr\fP)
+mvaddchstr/window (\fBstdscr\fP)
+mvaddnstr/window (\fBstdscr\fP)
+mvaddnwstr/window (\fBstdscr\fP)
+mvaddstr/window (\fBstdscr\fP)
+mvaddwstr/window (\fBstdscr\fP)
+mvchgat/window (\fBstdscr\fP)
 mvcur/screen
-mvdelch/window (stdscr)
-mvderwin/window (stdscr)
-mvget_wch/screen (input-operation)
-mvget_wstr/screen (input-operation)
-mvgetch/screen (input-operation)
-mvgetn_wstr/screen (input-operation)
-mvgetnstr/screen (input-operation)
-mvgetstr/screen (input-operation)
-mvhline/window (stdscr)
-mvhline_set/window (stdscr)
-mvin_wch/window (stdscr)
-mvin_wchnstr/window (stdscr)
-mvin_wchstr/window (stdscr)
-mvinch/window (stdscr)
-mvinchnstr/window (stdscr)
-mvinchstr/window (stdscr)
-mvinnstr/window (stdscr)
-mvinnwstr/window (stdscr)
-mvins_nwstr/window (stdscr)
-mvins_wch/window (stdscr)
-mvins_wstr/window (stdscr)
-mvinsch/window (stdscr)
-mvinsnstr/window (stdscr)
-mvinsstr/window (stdscr)
-mvinstr/window (stdscr)
-mvinwstr/window (stdscr)
-mvprintw/window (stdscr)
+mvdelch/window (\fBstdscr\fP)
+mvderwin/window (\fBstdscr\fP)
+mvget_wch/screen (input operation)
+mvget_wstr/screen (input operation)
+mvgetch/screen (input operation)
+mvgetn_wstr/screen (input operation)
+mvgetnstr/screen (input operation)
+mvgetstr/screen (input operation)
+mvhline/window (\fBstdscr\fP)
+mvhline_set/window (\fBstdscr\fP)
+mvin_wch/window (\fBstdscr\fP)
+mvin_wchnstr/window (\fBstdscr\fP)
+mvin_wchstr/window (\fBstdscr\fP)
+mvinch/window (\fBstdscr\fP)
+mvinchnstr/window (\fBstdscr\fP)
+mvinchstr/window (\fBstdscr\fP)
+mvinnstr/window (\fBstdscr\fP)
+mvinnwstr/window (\fBstdscr\fP)
+mvins_nwstr/window (\fBstdscr\fP)
+mvins_wch/window (\fBstdscr\fP)
+mvins_wstr/window (\fBstdscr\fP)
+mvinsch/window (\fBstdscr\fP)
+mvinsnstr/window (\fBstdscr\fP)
+mvinsstr/window (\fBstdscr\fP)
+mvinstr/window (\fBstdscr\fP)
+mvinwstr/window (\fBstdscr\fP)
+mvprintw/window (\fBstdscr\fP)
 mvscanw/screen
-mvvline/window (stdscr)
-mvvline_set/window (stdscr)
+mvvline/window (\fBstdscr\fP)
+mvvline_set/window (\fBstdscr\fP)
 mvwadd_wch/window
 mvwadd_wchnstr/window
 mvwadd_wchstr/window
@@ -349,12 +372,12 @@ mvwaddstr/window
 mvwaddwstr/window
 mvwchgat/window
 mvwdelch/window
-mvwget_wch/screen (input-operation)
-mvwget_wstr/screen (input-operation)
-mvwgetch/screen (input-operation)
-mvwgetn_wstr/screen (input-operation)
-mvwgetnstr/screen (input-operation)
-mvwgetstr/screen (input-operation)
+mvwget_wch/screen (input operation)
+mvwget_wstr/screen (input operation)
+mvwgetch/screen (input operation)
+mvwgetn_wstr/screen (input operation)
+mvwgetnstr/screen (input operation)
+mvwgetstr/screen (input operation)
 mvwhline/window
 mvwhline_set/window
 mvwin/window
@@ -379,10 +402,10 @@ mvwscanw/screen
 mvwvline/window
 mvwvline_set/window
 napms/reentrant
-newpad/global locks(windowlist)
-newscr/screen (readonly)
-newterm/global locks(screenlist)
-newwin/global locks(windowlist)
+newpad/global (locks window list)
+newscr/screen (read-only)
+newterm/global (locks screen list)
+newwin/global (locks window list)
 nl/screen
 nocbreak/screen
 nodelay/window
@@ -392,12 +415,12 @@ nonl/screen
 noqiflush/terminal
 noraw/screen
 notimeout/window
-numcodes/global (readonly)
-numfnames/global (readonly)
-numnames/global (readonly)
+numcodes/global (read-only)
+numfnames/global (read-only)
+numnames/global (read-only)
 ospeed/global
-overlay/window locks(source, target)
-overwrite/window locks(source, target)
+overlay/window (locks source, target)
+overwrite/window (locks source, target)
 pair_content/screen
 pecho_wchar/screen
 pechochar/screen
@@ -413,7 +436,7 @@ refresh/screen
 reset_prog_mode/screen
 reset_shell_mode/screen
 resetty/terminal
-resize_term/screen locks(windowlist)
+resize_term/screen (locks window list)
 resizeterm/screen
 restartterm/screen
 ripoffline/global (static data)
@@ -423,15 +446,15 @@ scr_dump/screen
 scr_init/screen
 scr_restore/screen
 scr_set/screen
-scrl/window (stdscr)
+scrl/window (\fBstdscr\fP)
 scroll/window
 scrollok/window
 set_curterm/screen
 set_escdelay/screen
 set_tabsize/screen
-set_term/global locks(screenlist, screen)
+set_term/global (locks screen list, screen)
 setcchar/reentrant
-setscrreg/window (stdscr)
+setscrreg/window (\fBstdscr\fP)
 setupterm/global
 slk_attr/screen
 slk_attr_off/screen
@@ -453,10 +476,10 @@ slk_wset/screen
 standend/window
 standout/window
 start_color/screen
-stdscr/screen (readonly)
-strcodes/global (readonly)
-strfnames/global (readonly)
-strnames/global (readonly)
+\fBstdscr\fP/screen (read-only)
+strcodes/global (read-only)
+strfnames/global (read-only)
+strnames/global (read-only)
 subpad/window
 subwin/window
 syncok/window
@@ -471,31 +494,31 @@ tgoto/global
 tigetflag/terminal
 tigetnum/terminal
 tigetstr/terminal
-timeout/window (stdscr)
+timeout/window (\fBstdscr\fP)
 touchline/window
 touchwin/window
 tparm/global (static data)
 tputs/screen
 trace/global (static data)
-ttytype/screen (readonly)
+ttytype/screen (read-only)
 typeahead/screen
 unctrl/screen
-unget_wch/screen (input-operation)
-ungetch/screen (input-operation)
-ungetmouse/screen (input-operation)
+unget_wch/screen (input operation)
+ungetch/screen (input operation)
+ungetmouse/screen (input operation)
 untouchwin/window
 use_default_colors/screen
 use_env/global (static data)
 use_extended_names/global (static data)
 use_legacy_coding/screen
-use_screen/global locks(screenlist, screen)
-use_window/global locks(windowlist, window)
+use_screen/global (locks screen list, screen)
+use_window/global (locks window list, window)
 vid_attr/screen
 vid_puts/screen
 vidattr/screen
 vidputs/screen
-vline/window (stdscr)
-vline_set/window (stdscr)
+vline/window (\fBstdscr\fP)
+vline_set/window (\fBstdscr\fP)
 vw_printw/window
 vw_scanw/screen
 vwprintw/window
@@ -535,16 +558,16 @@ wecho_wchar/window
 wechochar/window
 wenclose/window
 werase/window
-wget_wch/screen (input-operation)
-wget_wstr/screen (input-operation)
+wget_wch/screen (input operation)
+wget_wstr/screen (input operation)
 wgetbkgrnd/window
-wgetch/screen (input-operation)
+wgetch/screen (input operation)
 wgetdelay/window
-wgetn_wstr/screen (input-operation)
-wgetnstr/screen (input-operation)
+wgetn_wstr/screen (input operation)
+wgetnstr/screen (input operation)
 wgetparent/window
 wgetscrreg/window
-wgetstr/screen (input-operation)
+wgetstr/screen (input operation)
 whline/window
 whline_set/window
 win_wch/window
@@ -571,7 +594,7 @@ wnoutrefresh/screen
 wprintw/window
 wredrawln/window
 wrefresh/screen
-wresize/window locks(windowlist)
+wresize/window (locks window list)
 wscanw/screen
 wscrl/window
 wsetscrreg/window
@@ -587,15 +610,20 @@ wvline_set/window
 .TE
 .\" ***************************************************************************
 .SH RETURN VALUE
-These functions all return \fBTRUE\fP or \fBFALSE\fP, except as noted.
+\fB\%get_escdelay\fP returns the value of \fB\%ESCDELAY\fP.
+\fB\%set_escdelay\fP and \fB\%set_tabsize\fP return \fBERR\fP upon
+failure and \fBOK\fP upon successful completion.
+\fB\%use_screen\fP and \fB\%use_window\fP return the \fIint\fP returned
+by the user-supplied function they are called with.
 .SH NOTES
-Both a macro and a function are provided for each name.
+\fIncurses\fP provides both a C function and a preprocessor macro for
+each function documented in this page.
 .SH PORTABILITY
-These routines are specific to ncurses.
+These routines are specific to \fIncurses\fP.
 They were not supported on Version 7, BSD or System V implementations.
-It is recommended that any code depending on ncurses extensions
-be conditioned using NCURSES_VERSION.
+It is recommended that any code depending on \fIncurses\fP extensions
+be conditioned using \fB\%NCURSES_VERSION\fP.
 .SH SEE ALSO
-\fBcurses\fP(3X),
-\fBcurs_opaque\fP(3X),
-\fBcurs_variables\fP(3X).
+\fB\%curses\fP(3X),
+\fB\%curs_opaque\fP(3X),
+\fB\%curs_variables\fP(3X)