From ca276baf720e3a44721b9e18955d3f546955c6c8 Mon Sep 17 00:00:00 2001 From: "Thomas E. Dickey" Date: Sun, 22 Jun 2008 00:16:39 +0000 Subject: [PATCH] ncurses 5.6 - patch 20080621 + regenerated html documentation. + expand manpage description of parameters for form_driver() and menu_driver() (prompted by discussion with Adam Spragg). + add null-pointer checks for cur_term in baudrate() and def_shell_mode(), def_prog_mode() + fix some memory leaks in delscreen() and wide acs. --- INSTALL | 20 +- MANIFEST | 3 + NEWS | 10 +- dist.mk | 4 +- doc/html/ada/funcs/C.htm | 6 +- doc/html/ada/funcs/D.htm | 4 +- doc/html/ada/funcs/P.htm | 8 +- doc/html/ada/funcs/S.htm | 4 +- doc/html/ada/main.htm | 16 +- doc/html/ada/table.html | 40 +- .../terminal_interface-curses-aux__ads.htm | 2 +- doc/html/man/captoinfo.1m.html | 8 +- doc/html/man/clear.1.html | 2 +- doc/html/man/curs_addch.3x.html | 6 +- doc/html/man/curs_attr.3x.html | 7 +- doc/html/man/curs_clear.3x.html | 9 +- doc/html/man/curs_deleteln.3x.html | 10 +- doc/html/man/curs_getcchar.3x.html | 29 +- doc/html/man/curs_getyx.3x.html | 30 +- doc/html/man/curs_legacy.3x.html | 120 ++++ doc/html/man/curs_opaque.3x.html | 151 +++++ doc/html/man/curs_outopts.3x.html | 6 +- doc/html/man/curs_slk.3x.html | 6 +- doc/html/man/curs_termattrs.3x.html | 20 +- doc/html/man/curs_termcap.3x.html | 18 +- doc/html/man/curs_terminfo.3x.html | 203 +++--- doc/html/man/curs_threads.3x.html | 631 +++++++++++++++++ doc/html/man/curs_util.3x.html | 38 +- doc/html/man/form.3x.html | 8 +- doc/html/man/form_driver.3x.html | 83 ++- doc/html/man/form_field_new.3x.html | 6 +- doc/html/man/infocmp.1m.html | 2 +- doc/html/man/infotocap.1m.html | 2 +- doc/html/man/menu.3x.html | 2 +- doc/html/man/menu_driver.3x.html | 107 +-- doc/html/man/menu_pattern.3x.html | 10 +- doc/html/man/ncurses.3x.html | 245 ++++--- doc/html/man/panel.3x.html | 21 +- doc/html/man/term.7.html | 12 +- doc/html/man/terminfo.5.html | 632 +++++++++--------- doc/html/man/tic.1m.html | 2 +- doc/html/man/toe.1m.html | 36 +- doc/html/man/tput.1.html | 2 +- doc/html/man/tset.1.html | 2 +- man/form_driver.3x | 31 +- man/menu_driver.3x | 32 +- man/menu_pattern.3x | 6 +- ncurses/base/lib_freeall.c | 9 +- ncurses/base/lib_newterm.c | 20 +- ncurses/base/lib_restart.c | 4 +- ncurses/base/lib_set_term.c | 8 +- ncurses/llib-lncurses | 81 ++- ncurses/llib-lncursesw | 81 ++- ncurses/tinfo/entries.c | 8 +- ncurses/tinfo/lib_baudrate.c | 19 +- ncurses/tinfo/lib_setup.c | 22 +- ncurses/tinfo/lib_ttyflags.c | 50 +- 57 files changed, 2151 insertions(+), 803 deletions(-) create mode 100644 doc/html/man/curs_legacy.3x.html create mode 100644 doc/html/man/curs_opaque.3x.html create mode 100644 doc/html/man/curs_threads.3x.html diff --git a/INSTALL b/INSTALL index 7917e299..de5a7318 100644 --- a/INSTALL +++ b/INSTALL @@ -1,5 +1,5 @@ ------------------------------------------------------------------------------- --- Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. -- +-- Copyright (c) 1998-2006,2008 Free Software Foundation, Inc. -- -- -- -- Permission is hereby granted, free of charge, to any person obtaining a -- -- copy of this software and associated documentation files (the -- @@ -25,7 +25,7 @@ -- sale, use or other dealings in this Software without prior written -- -- authorization. -- ------------------------------------------------------------------------------- --- $Id: INSTALL,v 1.124 2008/03/29 18:07:32 tom Exp $ +-- $Id: INSTALL,v 1.126 2008/06/21 22:31:04 tom Exp $ --------------------------------------------------------------------- How to install Ncurses/Terminfo on your system --------------------------------------------------------------------- @@ -795,6 +795,14 @@ SUMMARY OF CONFIGURE OPTIONS: may be unsigned. Use this option if you need to preserve compatibility with 64-bit executables. + --with-normal + Generate normal (i.e., static) libraries (default). + + Note: on Linux, the configure script will attempt to use the GPM + library via the dlsym() function call. Use --without-dlsym to disable + this feature, or --without-gpm, depending on whether you wish to use + GPM. + --with-ospeed=TYPE Override type of ospeed variable, which is part of the termcap compatibility interface. In termcap, this is a 'short', which works @@ -808,14 +816,6 @@ SUMMARY OF CONFIGURE OPTIONS: those using termcap, do not use the higher speeds. Your application (or system, in general) may or may not. - --with-normal - Generate normal (i.e., static) libraries (default). - - Note: on Linux, the configure script will attempt to use the GPM - library via the dlsym() function call. Use --without-dlsym to disable - this feature, or --without-gpm, depending on whether you wish to use - GPM. - --with-profile Generate profile-libraries These are named by adding "_p" to the root, e.g., libncurses_p.a diff --git a/MANIFEST b/MANIFEST index 62f052ff..335b27dc 100644 --- a/MANIFEST +++ b/MANIFEST @@ -349,8 +349,10 @@ ./doc/html/man/curs_instr.3x.html ./doc/html/man/curs_inwstr.3x.html ./doc/html/man/curs_kernel.3x.html +./doc/html/man/curs_legacy.3x.html ./doc/html/man/curs_mouse.3x.html ./doc/html/man/curs_move.3x.html +./doc/html/man/curs_opaque.3x.html ./doc/html/man/curs_outopts.3x.html ./doc/html/man/curs_overlay.3x.html ./doc/html/man/curs_pad.3x.html @@ -364,6 +366,7 @@ ./doc/html/man/curs_termattrs.3x.html ./doc/html/man/curs_termcap.3x.html ./doc/html/man/curs_terminfo.3x.html +./doc/html/man/curs_threads.3x.html ./doc/html/man/curs_touch.3x.html ./doc/html/man/curs_trace.3x.html ./doc/html/man/curs_util.3x.html diff --git a/NEWS b/NEWS index b68220fb..2f027f4f 100644 --- a/NEWS +++ b/NEWS @@ -25,7 +25,7 @@ -- sale, use or other dealings in this Software without prior written -- -- authorization. -- ------------------------------------------------------------------------------- --- $Id: NEWS,v 1.1245 2008/06/14 23:08:10 tom Exp $ +-- $Id: NEWS,v 1.1248 2008/06/21 23:26:56 tom Exp $ ------------------------------------------------------------------------------- This is a log of changes that ncurses has gone through since Zeyd started @@ -45,6 +45,14 @@ See the AUTHORS file for the corresponding full names. Changes through 1.9.9e did not credit all contributions; it is not possible to add this information. +20080621 + + regenerated html documentation. + + expand manpage description of parameters for form_driver() and + menu_driver() (prompted by discussion with Adam Spragg). + + add null-pointer checks for cur_term in baudrate() and + def_shell_mode(), def_prog_mode() + + fix some memory leaks in delscreen() and wide acs. + 20080614 + modify test/ditto.c to illustrate multi-threaded use_screen(). + change CC_SHARED_OPTS from -KPIC to -xcode=pic32 for Solaris. diff --git a/dist.mk b/dist.mk index aef5c47a..044ba647 100644 --- a/dist.mk +++ b/dist.mk @@ -25,7 +25,7 @@ # use or other dealings in this Software without prior written # # authorization. # ############################################################################## -# $Id: dist.mk,v 1.646 2008/06/14 18:11:41 tom Exp $ +# $Id: dist.mk,v 1.647 2008/06/21 15:45:19 tom Exp $ # Makefile for creating ncurses distributions. # # This only needs to be used directly as a makefile by developers, but @@ -37,7 +37,7 @@ SHELL = /bin/sh # These define the major/minor/patch versions of ncurses. NCURSES_MAJOR = 5 NCURSES_MINOR = 6 -NCURSES_PATCH = 20080614 +NCURSES_PATCH = 20080621 # We don't append the patch to the version, since this only applies to releases VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR) diff --git a/doc/html/ada/funcs/C.htm b/doc/html/ada/funcs/C.htm index 0ae83fa9..79dbe4e9 100644 --- a/doc/html/ada/funcs/C.htm +++ b/doc/html/ada/funcs/C.htm @@ -29,14 +29,14 @@
  • Copy_Arg
  • Count - terminal_interface-curses-forms.adb:774
  • Count - terminal_interface-curses-menus.adb:912 -
  • Create - terminal_interface-curses-forms-field_types-enumeration-ada.ads:48 -
  • Create - terminal_interface-curses-forms-field_types-enumeration.ads:64 +
  • Create - terminal_interface-curses.ads:569
  • Create - terminal_interface-curses-forms.ads:293
  • Create - terminal_interface-curses-forms.ads:623 +
  • Create - terminal_interface-curses-forms-field_types-enumeration-ada.ads:48 +
  • Create - terminal_interface-curses-forms-field_types-enumeration.ads:64
  • Create - terminal_interface-curses-menus.ads:191
  • Create - terminal_interface-curses-menus.ads:638
  • Create - terminal_interface-curses-panels.ads:67 -
  • Create - terminal_interface-curses.ads:569
  • Current - terminal_interface-curses-forms.ads:729
  • Current - terminal_interface-curses-menus.ads:294
  • Current_Fld diff --git a/doc/html/ada/funcs/D.htm b/doc/html/ada/funcs/D.htm index cd6b24b3..a98f98eb 100644 --- a/doc/html/ada/funcs/D.htm +++ b/doc/html/ada/funcs/D.htm @@ -16,12 +16,12 @@
  • Def_Shell_Mode
  • Delayoutput
  • Delay_Output +
  • Delete - terminal_interface-curses.ads:588
  • Delete - terminal_interface-curses-forms.ads:315
  • Delete - terminal_interface-curses-forms.ads:634
  • Delete - terminal_interface-curses-menus.ads:203
  • Delete - terminal_interface-curses-menus.ads:645
  • Delete - terminal_interface-curses-panels.ads:139 -
  • Delete - terminal_interface-curses.ads:588
  • Delete_Character - terminal_interface-curses.ads:1334
  • Delete_Character - terminal_interface-curses.ads:1339
  • Delete_Line @@ -38,8 +38,8 @@
  • Driver - terminal_interface-curses-forms.ads:711
  • Driver - terminal_interface-curses-menus.ads:660
  • Driver - terminal_interface-curses-menus.adb:973 -
  • Duplicate - terminal_interface-curses-forms.ads:321
  • Duplicate - terminal_interface-curses.ads:614 +
  • Duplicate - terminal_interface-curses-forms.ads:321
  • Dupwin
  • Dup_Field
  • Dynamic_Info diff --git a/doc/html/ada/funcs/P.htm b/doc/html/ada/funcs/P.htm index b631580d..0893046f 100644 --- a/doc/html/ada/funcs/P.htm +++ b/doc/html/ada/funcs/P.htm @@ -31,6 +31,10 @@
  • Pos_Menu_Cursor
  • Prefresh
  • Prev_Router +
  • Put - terminal_interface-curses-text_io.ads:108 +
  • Put - terminal_interface-curses-text_io.ads:109 +
  • Put - terminal_interface-curses-text_io.ads:115 +
  • Put - terminal_interface-curses-text_io.ads:116
  • Put - terminal_interface-curses-text_io-complex_io.ads:54
  • Put - terminal_interface-curses-text_io-complex_io.ads:61
  • Put - terminal_interface-curses-text_io-decimal_io.ads:50 @@ -45,10 +49,6 @@
  • Put - terminal_interface-curses-text_io-integer_io.ads:55
  • Put - terminal_interface-curses-text_io-modular_io.ads:49
  • Put - terminal_interface-curses-text_io-modular_io.ads:55 -
  • Put - terminal_interface-curses-text_io.ads:108 -
  • Put - terminal_interface-curses-text_io.ads:109 -
  • Put - terminal_interface-curses-text_io.ads:115 -
  • Put - terminal_interface-curses-text_io.ads:116
  • putp
  • putwin
  • Put_Buf diff --git a/doc/html/ada/funcs/S.htm b/doc/html/ada/funcs/S.htm index e65e5386..f1d0007f 100644 --- a/doc/html/ada/funcs/S.htm +++ b/doc/html/ada/funcs/S.htm @@ -20,9 +20,9 @@
  • scr_init
  • scr_restore
  • scr_set +
  • Set_Background - terminal_interface-curses.ads:1108
  • Set_Background - terminal_interface-curses-forms.ads:446
  • Set_Background - terminal_interface-curses-menus.ads:443 -
  • Set_Background - terminal_interface-curses.ads:1108
  • Set_Buffer
  • Set_Cbreak_Mode
  • Set_Character_Attributes @@ -60,6 +60,7 @@
  • Set_Field_Userptr
  • Set_Fld_Buffer
  • Set_Fld_Status +
  • Set_Fld_Type - terminal_interface-curses-forms-field_types.adb:153
  • Set_Fld_Type - terminal_interface-curses-forms-field_types-alpha.adb:54
  • Set_Fld_Type - terminal_interface-curses-forms-field_types-alphanumeric.adb:54
  • Set_Fld_Type - terminal_interface-curses-forms-field_types-enumeration.adb:97 @@ -67,7 +68,6 @@
  • Set_Fld_Type - terminal_interface-curses-forms-field_types-ipv4_address.adb:54
  • Set_Fld_Type - terminal_interface-curses-forms-field_types-numeric.adb:56
  • Set_Fld_Type - terminal_interface-curses-forms-field_types-user.adb:56 -
  • Set_Fld_Type - terminal_interface-curses-forms-field_types.adb:153
  • Set_Flush_On_Interrupt_Mode
  • Set_Foreground - terminal_interface-curses-forms.ads:426
  • Set_Foreground - terminal_interface-curses-menus.ads:423 diff --git a/doc/html/ada/main.htm b/doc/html/ada/main.htm index 701fe7d1..d850608c 100644 --- a/doc/html/ada/main.htm +++ b/doc/html/ada/main.htm @@ -29,7 +29,11 @@
    You should start your browsing with one of these files: diff --git a/doc/html/ada/table.html b/doc/html/ada/table.html index ce8d91f4..ff6d0bd4 100644 --- a/doc/html/ada/table.html +++ b/doc/html/ada/table.html @@ -10,8 +10,6 @@ PUBLIC "-//IETF//DTD HTML 3.0//EN"> - - @@ -24,15 +22,15 @@ PUBLIC "-//IETF//DTD HTML 3.0//EN"> - + - - + + @@ -52,9 +50,9 @@ PUBLIC "-//IETF//DTD HTML 3.0//EN"> + - @@ -66,9 +64,9 @@ PUBLIC "-//IETF//DTD HTML 3.0//EN"> + - @@ -98,17 +96,17 @@ PUBLIC "-//IETF//DTD HTML 3.0//EN"> + - + - @@ -134,9 +132,9 @@ PUBLIC "-//IETF//DTD HTML 3.0//EN"> + - @@ -152,19 +150,20 @@ PUBLIC "-//IETF//DTD HTML 3.0//EN"> - + - - + + + @@ -172,10 +171,10 @@ PUBLIC "-//IETF//DTD HTML 3.0//EN"> + - @@ -209,9 +208,9 @@ PUBLIC "-//IETF//DTD HTML 3.0//EN"> + - @@ -259,10 +258,10 @@ PUBLIC "-//IETF//DTD HTML 3.0//EN"> - - + + @@ -286,6 +285,7 @@ PUBLIC "-//IETF//DTD HTML 3.0//EN"> + @@ -295,16 +295,16 @@ PUBLIC "-//IETF//DTD HTML 3.0//EN"> - + - + @@ -319,8 +319,8 @@ PUBLIC "-//IETF//DTD HTML 3.0//EN"> - + diff --git a/doc/html/ada/terminal_interface-curses-aux__ads.htm b/doc/html/ada/terminal_interface-curses-aux__ads.htm index 9d6a8031..f2160cd6 100644 --- a/doc/html/ada/terminal_interface-curses-aux__ads.htm +++ b/doc/html/ada/terminal_interface-curses-aux__ads.htm @@ -40,7 +40,7 @@ -------------------------------------------------------------------------------- Author: Juergen Pfeifer, 1996-- Version Control: --- @Revision: 1.15 @ +-- @Revision: 1.16 @-- Binding Version 01.00-------------------------------------------------------------------------------- curses binding. diff --git a/doc/html/man/captoinfo.1m.html b/doc/html/man/captoinfo.1m.html index b980f1d6..6fcacb72 100644 --- a/doc/html/man/captoinfo.1m.html +++ b/doc/html/man/captoinfo.1m.html @@ -2,7 +2,7 @@ @@ -197,7 +197,7 @@ This utility is actually a link to tic(1m), running in -I mode. You can use other tic options such as -f and -x. - The trace option isn't identical to SVr4's. Under SVr4, + The trace option is not identical to SVr4's. Under SVr4, instead of following the -v with a trace level n, you repeat it n times. @@ -206,7 +206,7 @@

    SEE ALSO

            infocmp(1m), curses(3x), terminfo(5)
     
    -       This describes ncurses version 5.6 (patch 20070303).
    +       This describes ncurses version 5.6 (patch 20080621).
     
     
     
    diff --git a/doc/html/man/clear.1.html b/doc/html/man/clear.1.html index 54a6a043..bcc5a85e 100644 --- a/doc/html/man/clear.1.html +++ b/doc/html/man/clear.1.html @@ -69,7 +69,7 @@

    SEE ALSO

            tput(1), terminfo(5)
     
    -       This describes ncurses version 5.6 (patch 20070303).
    +       This describes ncurses version 5.6 (patch 20080621).
     
     
     
    diff --git a/doc/html/man/curs_addch.3x.html b/doc/html/man/curs_addch.3x.html
    index e59f7ece..162532ce 100644
    --- a/doc/html/man/curs_addch.3x.html
    +++ b/doc/html/man/curs_addch.3x.html
    @@ -2,7 +2,7 @@
     
     
     
    @@ -111,7 +111,7 @@
            The  following  variables  may be used to add line drawing
            characters to the screen with routines of the  addch  fam-
            ily.   The  default  character listed below is used if the
    -       acsc  capability  doesn't   define   a   terminal-specific
    +       acsc  capability  does  not  define  a   terminal-specific
            replacement  for  it.   The  names  are  taken  from VT100
            nomenclature.
     
    diff --git a/doc/html/man/curs_attr.3x.html b/doc/html/man/curs_attr.3x.html
    index f6939439..9a7b2a46 100644
    --- a/doc/html/man/curs_attr.3x.html
    +++ b/doc/html/man/curs_attr.3x.html
    @@ -2,7 +2,7 @@
     
     
     
    @@ -241,7 +241,8 @@
            This implementation returns an error if the window pointer
            is  null.  The wcolor_set function returns an error if the
            color  pair  parameter  is  outside  the   range   0..COL-
    -       OR_PAIRS-1.
    +       OR_PAIRS-1.   This  implementation  also provides getattrs
    +       for compatibility with older versions of curses.
     
     
     
    diff --git a/doc/html/man/curs_clear.3x.html b/doc/html/man/curs_clear.3x.html index e70f7757..86bb4868 100644 --- a/doc/html/man/curs_clear.3x.html +++ b/doc/html/man/curs_clear.3x.html @@ -1,7 +1,7 @@ @@ -122,6 +122,11 @@ tations, and may not be true of implementations which were not derived from SVr4 source. + Not obvious from the description, most implementations + clear the screen after wclear even for a subwindow or de- + rived window. If you do not want to clear the screen dur- + ing the next wrefresh, use werase instead. +

    SEE ALSO

    diff --git a/doc/html/man/curs_deleteln.3x.html b/doc/html/man/curs_deleteln.3x.html
    index 2db8bd8f..8e73ce5b 100644
    --- a/doc/html/man/curs_deleteln.3x.html
    +++ b/doc/html/man/curs_deleteln.3x.html
    @@ -1,7 +1,7 @@
     
     
     
     
    @@ -104,9 +104,9 @@
            Note that all but winsdelln may be macros.
     
            These  routines  do  not require a hardware line delete or
    -       insert feature in the terminal.  In fact, they  won't  use
    -       hardware  line  delete/insert  unless idlok(..., TRUE) has
    -       been set on the current window.
    +       insert feature in the terminal.  In fact,  they  will  not
    +       use  hardware  line  delete/insert unless idlok(..., TRUE)
    +       has been set on the current window.
     
     
     
    diff --git a/doc/html/man/curs_getcchar.3x.html b/doc/html/man/curs_getcchar.3x.html index 235e41c9..b55ce1d7 100644 --- a/doc/html/man/curs_getcchar.3x.html +++ b/doc/html/man/curs_getcchar.3x.html @@ -1,7 +1,7 @@ @@ -106,19 +106,24 @@ - The wide-character string pointed to by wch. The string must be L'\0' terminated, contain at most one - character with strictly positive width, which must be - the first, and contain no characters of negative - width. + spacing character, which must be the first. + + Up to CCHARW_MAX-1 nonspacing characters may follow. + Additional nonspacing characters are ignored. + + The string may contain a single control character + instead. In that case, no nonspacing characters are + allowed.

    NOTES

    -       The opts argument is reserved for future use.   Currently,
    +       The  opts argument is reserved for future use.  Currently,
            an application must provide a null pointer as opts.
     
    -       The  wcval  argument may be a value generated by a call to
    -       setcchar or by a function that has a cchar_t output  argu-
    -       ment.   If  wcval  is  constructed by any other means, the
    +       The wcval argument may be a value generated by a  call  to
    +       setcchar  or by a function that has a cchar_t output argu-
    +       ment.  If wcval is constructed by  any  other  means,  the
            effect is unspecified.
     
     
    @@ -127,16 +132,16 @@
            When wch is a null pointer, getcchar returns the number of
            wide characters referenced by wcval.
     
    -       When  wch  is not a null pointer, getcchar returns OK upon
    +       When wch is not a null pointer, getcchar returns  OK  upon
            successful completion, and ERR otherwise.
     
    -       Upon successful completion, setcchar returns  OK.   Other-
    +       Upon  successful  completion, setcchar returns OK.  Other-
            wise, it returns ERR.
     
     
     

    SEE ALSO

    -       Functions:   curs_attr(3x),   curs_color(3x),  curses(3x),
    +       Functions:  curs_attr(3x),   curs_color(3x),   curses(3x),
            wcwidth(3).
     
     
    diff --git a/doc/html/man/curs_getyx.3x.html b/doc/html/man/curs_getyx.3x.html
    index 796528f8..22b3aec6 100644
    --- a/doc/html/man/curs_getyx.3x.html
    +++ b/doc/html/man/curs_getyx.3x.html
    @@ -1,7 +1,7 @@
     
     
     
     
    @@ -94,17 +94,29 @@
            The  getyx,  getparyx,  getbegyx  and  getmaxyx macros are
            described in the XSI Curses standard, Issue 4.
     
    -       This  implementation  also  provides   getbegx,   getbegy,
    -       getcurx,  getcury,  getmaxx,  getmaxy, getparx and getpary
    -       for compatibility with older versions of  curses.   X/Open
    -       does  not define a corresponding getcuryx function, though
    -       that would be needed to  make  references  to  the  WINDOW
    -       structure opaque.
    +       This implementation also provides functions getbegx, getb-
    +       egy,  getcurx, getcury, getmaxx, getmaxy, getparx and get-
    +       pary for compatibility with older versions of curses.
    +
    +       Although X/Open Curses does not address this, many  imple-
    +       mentations  provide  members  of the WINDOW structure con-
    +       taining values corresponding to these  macros.   For  best
    +       portability,  do  not  rely  on  using the data in WINDOW,
    +       since some implementations  make  WINDOW  opaque  (do  not
    +       allow direct use of its members).
    +
    +       Besides  the problem of opaque structures, the data stored
    +       in like-named members may not have like-values in  differ-
    +       ent  implementations.   For  example, the WINDOW._maxx and
    +       WINDOW._maxy  values  in  ncurses  have  (at  least  since
    +       release 1.8.1) differed by one from some other implementa-
    +       tions.  The difference is hidden by  means  of  the  macro
    +       getmaxyx.
     
     
     

    SEE ALSO

    -       curses(3x)
    +       curses(3x), curs_legacy(3x), curs_opaque(3x)
     
     
     
    diff --git a/doc/html/man/curs_legacy.3x.html b/doc/html/man/curs_legacy.3x.html
    new file mode 100644
    index 00000000..d1de590c
    --- /dev/null
    +++ b/doc/html/man/curs_legacy.3x.html
    @@ -0,0 +1,120 @@
    +
    +
    +
    +
    +curs_legacy 3x
    +
    +
    +
    +
    +

    curs_legacy 3x

    +
    +
    +
    +curs_legacy(3x)                                         curs_legacy(3x)
    +
    +
    +
    +
    +
    +

    NAME

    +       getbegx, getbegy, getcurx, getcury, getmaxx, getmaxy, get-
    +       parx, getpary - get curses cursor and window coordinates
    +
    +
    +
    +

    SYNOPSIS

    +       #include <curses.h>
    +
    +       int getbegx(WINDOW *win);
    +       int getbegy(WINDOW *win);
    +       int getcurx(WINDOW *win);
    +       int getcury(WINDOW *win);
    +       int getmaxx(WINDOW *win);
    +       int getmaxy(WINDOW *win);
    +       int getparx(WINDOW *win);
    +       int getpary(WINDOW *win);
    +
    +
    +
    +

    DESCRIPTION

    +       The getbegy and getbegx functions return the same data  as
    +       getbegyx.
    +
    +       The  getcury and getcurx functions return the same data as
    +       getyx.
    +
    +       The getmaxy and getmaxx functions return the same data  as
    +       getmaxyx.
    +
    +       The  getpary and getparx functions return the same data as
    +       getparyx.
    +
    +
    +
    +

    RETURN VALUE

    +       These functions return an integer, or ERR  if  the  window
    +       parameter is null.
    +
    +
    +
    +

    NOTES

    +       All  of  these interfaces are provided as macros and func-
    +       tions.  The macros are suppressed (and only the  functions
    +       provided)  when  NCURSES_OPAQUE  is defined.  The standard
    +       forms such as getyx must be implemented as macros, and (in
    +       this implementation) are defined in terms of the functions
    +       described here, to avoid reliance on internal  details  of
    +       the WINDOW structure.
    +
    +
    +
    +

    PORTABILITY

    +       These functions were supported on Version 7, BSD or System
    +       V implementations.
    +
    +
    +
    +

    SEE ALSO

    +       curses(3x), curs_getyx(3x), curs_opaque(3x)
    +
    +
    +
    +                                                        curs_legacy(3x)
    +
    +
    +
    +Man(1) output converted with +man2html +
    + + diff --git a/doc/html/man/curs_opaque.3x.html b/doc/html/man/curs_opaque.3x.html new file mode 100644 index 00000000..3e0f1ae0 --- /dev/null +++ b/doc/html/man/curs_opaque.3x.html @@ -0,0 +1,151 @@ + + + + +curs_opaque 3x + + + + +

    curs_opaque 3x

    +
    +
    +
    +curs_opaque(3x)                                         curs_opaque(3x)
    +
    +
    +
    +
    +
    +

    NAME

    +       is_cleared, is_idlok, is_idcok, is_immedok, is_keypad,
    +       is_leaveok, is_nodelay, is_timeout, is_scrollok, is_syncok
    +       - curses window properties
    +
    +
    +
    +

    SYNOPSIS

    +       #include <curses.h>
    +
    +       bool is_cleared(const WINDOW *win);
    +       bool is_idcok(const WINDOW *win);
    +       bool is_idlok(const WINDOW *win);
    +       bool is_immedok(const WINDOW *win);
    +       bool is_keypad(const WINDOW *win);
    +       bool is_leaveok(const WINDOW *win);
    +       bool is_nodelay(const WINDOW *win);
    +       bool is_notimeout(const WINDOW *win);
    +       bool is_scrollok(const WINDOW *win);
    +       bool is_syncok(const WINDOW *win);
    +       WINDOW * wgetparent(const WINDOW *win);
    +       int wgetscrreg(const WINDOW *win, int *top, int *bottom);
    +
    +
    +
    +

    DESCRIPTION

    +       This  implementation provides functions which return prop-
    +       erties set in the WINDOW  structure,  allowing  it  to  be
    +       ``opaque'' if the symbol NCURSES_OPAQUE is defined:
    +
    +       is_cleared
    +            returns the value set in clearok
    +
    +       is_idcok
    +            returns the value set in idcok
    +
    +       is_idlok
    +            returns the value set in idlok
    +
    +       is_immedok
    +            returns the value set in immedok
    +
    +       is_keypad
    +            returns the value set in keypad
    +
    +       is_leaveok
    +            returns the value set in leaveok
    +
    +       is_nodelay
    +            returns the value set in nodelay
    +
    +       is_notimeout
    +            returns the value set in notimeout
    +
    +       is_scrollok
    +            returns the value set in scrollok
    +
    +       is_syncok
    +            returns the value set in syncok
    +
    +       wgetparent
    +            returns  the parent WINDOW pointer for subwindows, or
    +            NULL for windows having no parent.
    +
    +       wgetscrreg
    +            returns the top and bottom  rows  for  the  scrolling
    +            margin as set in wsetscrreg.
    +
    +
    +
    +

    RETURN VALUE

    +       These functions all return TRUE or FALSE, except as noted.
    +
    +
    +
    +

    NOTES

    +       Both a macro and a function are provided for each name.
    +
    +
    +
    +

    PORTABILITY

    +       These routines are specific to  ncurses.   They  were  not
    +       supported  on  Version 7, BSD or System V implementations.
    +       It is recommended that any code depending on  ncurses  ex-
    +       tensions be conditioned using NCURSES_VERSION.
    +
    +
    +
    +

    SEE ALSO

    +       curses(3x),  curs_inopts(3x),  curs_outopts(3x), curs_win-
    +       dow(3x)
    +
    +
    +
    +                                                        curs_opaque(3x)
    +
    +
    +
    +Man(1) output converted with +man2html +
    + + diff --git a/doc/html/man/curs_outopts.3x.html b/doc/html/man/curs_outopts.3x.html index 1ff83a94..c8d4a06c 100644 --- a/doc/html/man/curs_outopts.3x.html +++ b/doc/html/man/curs_outopts.3x.html @@ -1,7 +1,7 @@ @@ -91,7 +91,7 @@ needs insert/delete line, for example, for a screen edi- tor. It is disabled by default because insert/delete line tends to be visually annoying when used in applications - where it isn't really needed. If insert/delete line can- + where it is not really needed. If insert/delete line can- not be used, curses redraws the changed portions of all lines. diff --git a/doc/html/man/curs_slk.3x.html b/doc/html/man/curs_slk.3x.html index cd2effca..e76dcc7e 100644 --- a/doc/html/man/curs_slk.3x.html +++ b/doc/html/man/curs_slk.3x.html @@ -1,7 +1,7 @@ @@ -89,7 +89,7 @@ bels of up to five characters each. This is most common for todays PC like enduser devices. Please note that ncurses simulates this mode by taking over up to two lines - at the bottom of the screen, it doesn't try to use any + at the bottom of the screen, it does not try to use any hardware support for this mode. The slk_init routine must be called before initscr or diff --git a/doc/html/man/curs_termattrs.3x.html b/doc/html/man/curs_termattrs.3x.html index 9b9cdae9..daf3a766 100644 --- a/doc/html/man/curs_termattrs.3x.html +++ b/doc/html/man/curs_termattrs.3x.html @@ -1,7 +1,7 @@ @@ -109,14 +109,14 @@ saved between calls to newterm if longname is going to be used with multiple terminals. - If a given terminal doesn't support a video attribute that - an application program is trying to use, curses may sub- - stitute a different video attribute for it. The termattrs - and term_attrs functions return a logical OR of all video - attributes supported by the terminal using A_ and WA_ con- - stants respectively. This information is useful when a - curses program needs complete control over the appearance - of the screen. + If a given terminal does not support a video attribute + that an application program is trying to use, curses may + substitute a different video attribute for it. The + termattrs and term_attrs functions return a logical OR of + all video attributes supported by the terminal using A_ + and WA_ constants respectively. This information is use- + ful when a curses program needs complete control over the + appearance of the screen. The termname routine returns the terminal name used by setupterm. diff --git a/doc/html/man/curs_termcap.3x.html b/doc/html/man/curs_termcap.3x.html index c1688f50..a2457784 100644 --- a/doc/html/man/curs_termcap.3x.html +++ b/doc/html/man/curs_termcap.3x.html @@ -1,7 +1,7 @@ @@ -130,13 +130,13 @@ If you call tgetstr to fetch ca or any other parameterized string, be aware that it will be returned in terminfo notation, not the older and not-quite-compatible termcap - notation. This won't cause problems if all you do with it - is call tgoto or tparm, which both expand terminfo-style - strings as terminfo. (The tgoto function, if configured - to support termcap, will check if the string is indeed - terminfo-style by looking for "%p" parameters or "$<..>" - delays, and invoke a termcap-style parser if the string - does not appear to be terminfo). + notation. This will not cause problems if all you do with + it is call tgoto or tparm, which both expand terminfo- + style strings as terminfo. (The tgoto function, if con- + figured to support termcap, will check if the string is + indeed terminfo-style by looking for "%p" parameters or + "$<..>" delays, and invoke a termcap-style parser if the + string does not appear to be terminfo). Because terminfo conventions for representing padding in string capabilities differ from termcap's, tputs("50"); diff --git a/doc/html/man/curs_terminfo.3x.html b/doc/html/man/curs_terminfo.3x.html index 85ad7f9b..51e41701 100644 --- a/doc/html/man/curs_terminfo.3x.html +++ b/doc/html/man/curs_terminfo.3x.html @@ -27,7 +27,7 @@ * sale, use or other dealings in this Software without prior written * * authorization. * **************************************************************************** - * @Id: curs_terminfo.3x,v 1.26 2007/02/24 16:37:50 tom Exp @ + * @Id: curs_terminfo.3x,v 1.28 2007/05/26 20:09:06 tom Exp @ --> @@ -88,146 +88,149 @@ tupterm is automatically called by initscr and newterm. This defines the set of terminal-dependent variables [listed in terminfo(5)]. The terminfo variables lines and - columns are initialized by setupterm as follows: If - use_env(FALSE) has been called, values for lines and - columns specified in terminfo are used. Otherwise, if the - environment variables LINES and COLUMNS exist, their val- - ues are used. If these environment variables do not exist - and the program is running in a window, the current window - size is used. Otherwise, if the environment variables do - not exist, the values for lines and columns specified in - the terminfo database are used. - - The header files curses.h and term.h should be included - (in this order) to get the definitions for these strings, + columns are initialized by setupterm as follows: + + If use_env(FALSE) has been called, values for lines + and columns specified in terminfo are used. + + Otherwise, if the environment variables LINES and + COLUMNS exist, their values are used. If these en- + vironment variables do not exist and the program is + running in a window, the current window size is + used. Otherwise, if the environment variables do + not exist, the values for lines and columns speci- + fied in the terminfo database are used. + + The header files curses.h and term.h should be included + (in this order) to get the definitions for these strings, numbers, and flags. Parameterized strings should be - passed through tparm to instantiate them. All terminfo - strings [including the output of tparm] should be printed - with tputs or putp. Call the reset_shell_mode to restore - the tty modes before exiting [see curs_kernel(3x)]. Pro- + passed through tparm to instantiate them. All terminfo + strings [including the output of tparm] should be printed + with tputs or putp. Call the reset_shell_mode to restore + the tty modes before exiting [see curs_kernel(3x)]. Pro- grams which use cursor addressing should output en- - ter_ca_mode upon startup and should output exit_ca_mode - before exiting. Programs desiring shell escapes should + ter_ca_mode upon startup and should output exit_ca_mode + before exiting. Programs desiring shell escapes should call - reset_shell_mode and output exit_ca_mode before the shell - is called and should output enter_ca_mode and call re- + reset_shell_mode and output exit_ca_mode before the shell + is called and should output enter_ca_mode and call re- set_prog_mode after returning from the shell. The setupterm routine reads in the terminfo database, ini- tializing the terminfo structures, but does not set up the output virtualization structures used by curses. The ter- - minal type is the character string term; if term is null, - the environment variable TERM is used. All output is to - file descriptor fildes which is initialized for output. - If errret is not null, then setupterm returns OK or ERR + minal type is the character string term; if term is null, + the environment variable TERM is used. All output is to + file descriptor fildes which is initialized for output. + If errret is not null, then setupterm returns OK or ERR and stores a status value in the integer pointed to by er- - rret. A return value of OK combined with status of 1 in + rret. A return value of OK combined with status of 1 in errret is normal. If ERR is returned, examine errret: 1 means that the terminal is hardcopy, cannot be used for curses applications. 0 means that the terminal could not be found, or - that it is a generic type, having too little + that it is a generic type, having too little information for curses applications to run. - -1 means that the terminfo database could not be + -1 means that the terminfo database could not be found. - If errret is null, setupterm prints an error message upon + If errret is null, setupterm prints an error message upon finding an error and exits. Thus, the simplest call is: setupterm((char *)0, 1, (int *)0);, - which uses all the defaults and sends the output to std- + which uses all the defaults and sends the output to std- out. - The setterm routine is being replaced by setupterm. The + The setterm routine is being replaced by setupterm. The call: setupterm(term, 1, (int *)0) - provides the same functionality as setterm(term). The - setterm routine is included here for BSD compatibility, + provides the same functionality as setterm(term). The + setterm routine is included here for BSD compatibility, and is not recommended for new programs. - The set_curterm routine sets the variable cur_term to + The set_curterm routine sets the variable cur_term to nterm, and makes all of the terminfo boolean, numeric, and - string variables use the values from nterm. It returns + string variables use the values from nterm. It returns the old value of cur_term. - The del_curterm routine frees the space pointed to by + The del_curterm routine frees the space pointed to by oterm and makes it available for further use. If oterm is - the same as cur_term, references to any of the terminfo - boolean, numeric, and string variables thereafter may re- - fer to invalid memory locations until another setupterm + the same as cur_term, references to any of the terminfo + boolean, numeric, and string variables thereafter may re- + fer to invalid memory locations until another setupterm has been called. The restartterm routine is similar to setupterm and - initscr, except that it is called after restoring memory - to a previous state (for example, when reloading a game - saved as a core image dump). It assumes that the windows + initscr, except that it is called after restoring memory + to a previous state (for example, when reloading a game + saved as a core image dump). It assumes that the windows and the input and output options are the same as when mem- - ory was saved, but the terminal type and baud rate may be - different. Accordingly, it saves various tty state bits, - does a setupterm, and then restores the bits. + ory was saved, but the terminal type and baud rate may be + different. Accordingly, it saves various tty state bits, + calls setupterm, and then restores the bits. The tparm routine instantiates the string str with parame- - ters pi. A pointer is returned to the result of str with + ters pi. A pointer is returned to the result of str with the parameters applied. - The tputs routine applies padding information to the - string str and outputs it. The str must be a terminfo - string variable or the return value from tparm, tgetstr, + The tputs routine applies padding information to the + string str and outputs it. The str must be a terminfo + string variable or the return value from tparm, tgetstr, or tgoto. affcnt is the number of lines affected, or 1 if - not applicable. putc is a putchar-like routine to which + not applicable. putc is a putchar-like routine to which the characters are passed, one at a time. - The putp routine calls tputs(str, 1, putchar). Note that - the output of putp always goes to stdout, not to the + The putp routine calls tputs(str, 1, putchar). Note that + the output of putp always goes to stdout, not to the fildes specified in setupterm. The vidputs routine displays the string on the terminal in - the video attribute mode attrs, which is any combination - of the attributes listed in curses(3x). The characters + the video attribute mode attrs, which is any combination + of the attributes listed in curses(3x). The characters are passed to the putchar-like routine putc. - The vidattr routine is like the vidputs routine, except + The vidattr routine is like the vidputs routine, except that it outputs through putchar. - The vid_attr and vid_puts routines correspond to vidattr - and vidputs, respectively. They use a set of arguments - for representing the video attributes plus color, i.e., + The vid_attr and vid_puts routines correspond to vidattr + and vidputs, respectively. They use a set of arguments + for representing the video attributes plus color, i.e., one of type attr_t for the attributes and one of short for the color_pair number. The vid_attr and vid_puts routines - are designed to use the attribute constants with the WA_ - prefix. The opts argument is reserved for future use. - Currently, applications must provide a null pointer for + are designed to use the attribute constants with the WA_ + prefix. The opts argument is reserved for future use. + Currently, applications must provide a null pointer for that argument. - The mvcur routine provides low-level cursor motion. It - takes effect immediately (rather than at the next re- + The mvcur routine provides low-level cursor motion. It + takes effect immediately (rather than at the next re- fresh). - The tigetflag, tigetnum and tigetstr routines return the + The tigetflag, tigetnum and tigetstr routines return the value of the capability corresponding to the terminfo cap- name passed to them, such as xenl. - The tigetflag routine returns the value -1 if capname is + The tigetflag routine returns the value -1 if capname is not a boolean capability, or 0 if it is canceled or absent from the terminal description. - The tigetnum routine returns the value -2 if capname is - not a numeric capability, or -1 if it is canceled or ab- + The tigetnum routine returns the value -2 if capname is + not a numeric capability, or -1 if it is canceled or ab- sent from the terminal description. - The tigetstr routine returns the value (char *)-1 if cap- + The tigetstr routine returns the value (char *)-1 if cap- name is not a string capability, or 0 if it is canceled or absent from the terminal description. The capname for each capability is given in the table col- - umn entitled capname code in the capabilities section of + umn entitled capname code in the capabilities section of terminfo(5). char *boolnames[], *boolcodes[], *boolfnames[] @@ -236,25 +239,25 @@ char *strnames[], *strcodes[], *strfnames[] - These null-terminated arrays contain the capnames, the - termcap codes, and the full C names, for each of the ter- + These null-terminated arrays contain the capnames, the + termcap codes, and the full C names, for each of the ter- minfo variables.

    RETURN VALUE

    -       Routines that return an integer return  ERR  upon  failure
    -       and  OK  (SVr4 only specifies "an integer value other than
    -       ERR") upon successful completion, unless  otherwise  noted
    +       Routines  that  return  an integer return ERR upon failure
    +       and OK (SVr4 only specifies "an integer value  other  than
    +       ERR")  upon  successful completion, unless otherwise noted
            in the preceding routine descriptions.
     
            Routines that return pointers always return NULL on error.
     
    -       X/Open defines no error conditions.  In  this  implementa-
    +       X/Open  defines  no error conditions.  In this implementa-
            tion
     
                   del_curterm
    -                   returns  an error if its terminal parameter is
    +                   returns an error if its terminal parameter  is
                        null.
     
                   restartterm
    @@ -262,17 +265,17 @@
                        tupterm returns an error.
     
                   setupterm
    -                   returns  an error if it cannot allocate enough
    +                   returns an error if it cannot allocate  enough
                        memory, or create the initial windows (stdscr,
    -                   curscr,  newscr).   Other error conditions are
    +                   curscr, newscr).  Other error  conditions  are
                        documented above.
     
     
     

    NOTES

    -       The setupterm routine should be used in place of  setterm.
    -       It  may be useful when you want to test for terminal capa-
    -       bilities without committing to the allocation  of  storage
    +       The  setupterm routine should be used in place of setterm.
    +       It may be useful when you want to test for terminal  capa-
    +       bilities  without  committing to the allocation of storage
            involved in initscr.
     
            Note that vidattr and vidputs may be macros.
    @@ -280,35 +283,39 @@
     
     

    PORTABILITY

    -       The  function  setterm  is not described in the XSI Curses
    -       standard and must be considered non-portable.   All  other
    +       The function setterm is not described in  the  XSI  Curses
    +       standard  and  must be considered non-portable.  All other
            functions are as described in the XSI curses standard.
     
    -       In  System V Release 4, set_curterm has an int return type
    -       and returns OK or ERR.  We have chosen  to  implement  the
    +       setupterm copies the terminal name to the  array  ttytype.
    +       This  is not part of X/Open Curses, but is assumed by some
    +       applications.
    +
    +       In System V Release 4, set_curterm has an int return  type
    +       and  returns  OK  or ERR.  We have chosen to implement the
            XSI Curses semantics.
     
            In System V Release 4, the third argument of tputs has the
            type int (*putc)(char).
     
            The XSI Curses standard prototypes tparm with a fixed num-
    -       ber  of  parameters, rather than a variable argument list.
    -       This  implementation  uses  a  variable   argument   list.
    -       Portable  applications  should  provide 9 parameters after
    +       ber of parameters, rather than a variable  argument  list.
    +       This   implementation   uses  a  variable  argument  list.
    +       Portable applications should provide  9  parameters  after
            the format; zeroes are fine for this purpose.
     
    -       XSI notes that after calling mvcur, the curses  state  may
    -       not  match the actual terminal state, and that an applica-
    -       tion should touch and refresh the window  before  resuming
    -       normal  curses calls.  Both ncurses and System V Release 4
    -       curses implement mvcur using the SCREEN data allocated  in
    -       either  initscr or newterm.  So though it is documented as
    -       a terminfo function, mvcur is  really  a  curses  function
    +       XSI  notes  that after calling mvcur, the curses state may
    +       not match the actual terminal state, and that an  applica-
    +       tion  should  touch and refresh the window before resuming
    +       normal curses calls.  Both ncurses and System V Release  4
    +       curses  implement mvcur using the SCREEN data allocated in
    +       either initscr or newterm.  So though it is documented  as
    +       a  terminfo  function,  mvcur  is really a curses function
            which is not well specified.
     
    -       XSI  states that the old location must be given.  This im-
    -       plementation allows the caller to use -1's for the old or-
    -       dinates.  In that case, the old location is unknown.
    +       XSI states that the old location must be given for  mvcur.
    +       This  implementation allows the caller to use -1's for the
    +       old ordinates.  In that case, the old location is unknown.
     
            Extended  terminal  capability  names, e.g., as defined by
            tic -x, are not stored in the  arrays  described  in  this
    diff --git a/doc/html/man/curs_threads.3x.html b/doc/html/man/curs_threads.3x.html
    new file mode 100644
    index 00000000..2a2f0fd9
    --- /dev/null
    +++ b/doc/html/man/curs_threads.3x.html
    @@ -0,0 +1,631 @@
    +
    +
    +
    +
    +curs_threads 3x
    +
    +
    +
    +
    +

    curs_threads 3x

    +
    +
    +
    +curs_threads(3x)                                       curs_threads(3x)
    +
    +
    +
    +
    +
    +

    NAME

    +       use_screen, use_window - curses thread support
    +
    +
    +
    +

    SYNOPSIS

    +       #include <curses.h>
    +
    +       typedef  int (*NCURSES_WINDOW_CB)(WINDOW *, void *); type-
    +       def int (*NCURSES_SCREEN_CB)(SCREEN *, void *);
    +       int set_escdelay(int size);
    +       int set_tabsize(int size);
    +       int use_screen(SCREEN *scr, NCURSES_WINDOW_CB  func,  void
    +       *data);
    +       int  use_window(WINDOW  *win, NCURSES_SCREEN_CB func, void
    +       *data);
    +
    +
    +
    +

    DESCRIPTION

    +       This implementation can be configured to provide  rudimen-
    +       tary  support for multi-threaded applications.  This makes
    +       a different set of libraries, e.g., libncursest since  the
    +       binary interfaces are different.
    +
    +       Rather  than modify the interfaces to pass a thread speci-
    +       fier 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.
    +
    +       In  addition  to  forcing  access to members of the WINDOW
    +       structure to be via functions  (see  curs_opaque(3x)),  it
    +       makes functions of the common global variables, e.g., COL-
    +       ORS, COLOR_PAIRS, COLS, ESCDELAY, LINES,  TABSIZE  curscr,
    +       newscr  and  ttytype.   Those  variables are maintained as
    +       read-only values, stored in the SCREEN structure.
    +
    +       Even this is not enough to make a thread-safe  application
    +       using  curses.   A multi-threaded application would be ex-
    +       pected to have threads updating separate  windows  (within
    +       the same device), or updating on separate screens (on dif-
    +       ferent devices).  Also, a few of the global variables  are
    +       considered  writable  by some applications.  The functions
    +       described here address these special situations.
    +
    +       The ESCDELAY and TABSIZE global variables are modified  by
    +       some  applications.   To modify them in any configuration,
    +       use the  set_escdelay  or  set_tabsize  functions.   Other
    +       global variables are not modifiable.
    +
    +       The  use_window  and  use_screen  functions provide coarse
    +       granularity mutexes for their respective WINDOW and SCREEN
    +       parameters,  and call a user-supplied function, passing it
    +       a data parameter, and returning the value from  the  user-
    +       supplied function to the application.
    +
    +   USAGE
    +       All  of  the ncurses library functions assume that the lo-
    +       cale is not altered during operation.  In  addition,  they
    +       use data which is maintained within a hierarchy of scopes.
    +
    +              -  global data, e.g., used in the low-level termin-
    +                 fo or termcap interfaces.
    +
    +              -  terminal  data,  e.g., associated with a call to
    +                 set_curterm.  The terminal data are  initialized
    +                 when screens are created.
    +
    +              -  screen  data,  e.g.,  associated  with a call to
    +                 newterm or initscr.
    +
    +              -  window data, e.g., associated  with  a  call  to
    +                 newwin  or  subwin.  Windows are associated with
    +                 screens.  Pads are  not  necessarily  associated
    +                 with a particular screen.
    +
    +                 Most  curses applications operate on one or more
    +                 windows within a single screen.
    +
    +              -  reentrant, i.e., it uses only the data passed as
    +                 parameters.
    +
    +       This table lists the scope of data used for each symbol in
    +       the ncurses library  when  it  is  configured  to  support
    +       threading:
    +
    +      Symbol                  Scope
    +      -------------------------------------------------------------
    +      BC                      global
    +      COLORS                  screen (readonly)
    +      COLOR_PAIR              reentrant
    +      COLOR_PAIRS             screen (readonly)
    +      COLS                    screen (readonly)
    +      ESCDELAY                screen (readonly, see set_escdelay)
    +      LINES                   screen (readonly)
    +      PAIR_NUMBER             reentrant
    +      PC                      global
    +      SP                      global
    +      TABSIZE                 screen (readonly)
    +      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)
    +      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)
    +      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)
    +
    +      can_change_color        terminal
    +      cbreak                  screen
    +      chgat                   window (stdscr)
    +      clear                   window (stdscr)
    +      clearok                 window
    +      clrtobot                window (stdscr)
    +      clrtoeol                window (stdscr)
    +      color_content           screen
    +      color_set               window (stdscr)
    +      copywin                 window locks(source, target)
    +      cur_term                terminal
    +      curs_set                screen
    +      curscr                  screen (readonly)
    +      curses_version          global (readonly)
    +      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)
    +      derwin                  screen
    +      doupdate                screen
    +      dupwin                  screen locks(window)
    +      echo                    screen
    +      echo_wchar              window (stdscr)
    +      echochar                window (stdscr)
    +      endwin                  screen
    +      erase                   window (stdscr)
    +      erasechar               window (stdscr)
    +      erasewchar              window (stdscr)
    +      filter                  global
    +      flash                   terminal
    +      flushinp                screen
    +      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)
    +      getcurx                 window
    +      getcury                 window
    +      getmaxx                 window
    +      getmaxy                 window
    +      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)
    +      halfdelay               screen
    +      has_colors              terminal
    +      has_ic                  terminal
    +      has_il                  terminal
    +      has_key                 screen
    +      hline                   window (stdscr)
    +      hline_set               window (stdscr)
    +      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)
    +      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)
    +      intrflush               terminal
    +      inwstr                  window (stdscr)
    +      is_cleared              window
    +      is_idcok                window
    +      is_idlok                window
    +      is_immedok              window
    +      is_keypad               window
    +      is_leaveok              window
    +      is_linetouched          window
    +      is_nodelay              window
    +      is_notimeout            window
    +      is_scrollok             window
    +      is_syncok               window
    +      is_term_resized         terminal
    +      is_wintouched           window
    +      isendwin                screen
    +      key_defined             screen
    +      key_name                global (static data)
    +      keybound                screen
    +      keyname                 global (static data)
    +      keyok                   screen
    +      keypad                  window
    +      killchar                terminal
    +      killwchar               terminal
    +      leaveok                 window
    +      longname                screen
    +      mcprint                 terminal
    +      meta                    screen
    +      mouse_trafo             window (stdscr)
    +      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)
    +      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)
    +      mvscanw                 screen
    +      mvvline                 window (stdscr)
    +      mvvline_set             window (stdscr)
    +      mvwadd_wch              window
    +      mvwadd_wchnstr          window
    +      mvwadd_wchstr           window
    +      mvwaddch                window
    +      mvwaddchnstr            window
    +      mvwaddchstr             window
    +      mvwaddnstr              window
    +      mvwaddnwstr             window
    +      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)
    +      mvwhline                window
    +      mvwhline_set            window
    +      mvwin                   window
    +      mvwin_wch               window
    +      mvwin_wchnstr           window
    +      mvwin_wchstr            window
    +      mvwinch                 window
    +      mvwinchnstr             window
    +      mvwinchstr              window
    +      mvwinnstr               window
    +      mvwinnwstr              window
    +      mvwins_nwstr            window
    +      mvwins_wch              window
    +      mvwins_wstr             window
    +      mvwinsch                window
    +      mvwinsnstr              window
    +      mvwinsstr               window
    +      mvwinstr                window
    +      mvwinwstr               window
    +      mvwprintw               window
    +
    +      mvwscanw                screen
    +      mvwvline                window
    +      mvwvline_set            window
    +      napms                   reentrant
    +      newpad                  global locks(windowlist)
    +      newscr                  screen (readonly)
    +      newterm                 global locks(screenlist)
    +      newwin                  global locks(windowlist)
    +      nl                      screen
    +      nocbreak                screen
    +      nodelay                 window
    +      noecho                  screen
    +      nofilter                global
    +      nonl                    screen
    +      noqiflush               terminal
    +      noraw                   screen
    +      notimeout               window
    +      numcodes                global (readonly)
    +      numfnames               global (readonly)
    +      numnames                global (readonly)
    +      ospeed                  global
    +      overlay                 window locks(source, target)
    +      overwrite               window locks(source, target)
    +      pair_content            screen
    +      pecho_wchar             screen
    +      pechochar               screen
    +      pnoutrefresh            screen
    +      prefresh                screen
    +      printw                  window
    +      putp                    global
    +      putwin                  window
    +      qiflush                 terminal
    +      raw                     screen
    +      redrawwin               window
    +      refresh                 screen
    +      reset_prog_mode         screen
    +      reset_shell_mode        screen
    +      resetty                 terminal
    +      resize_term             screen locks(windowlist)
    +      resizeterm              screen
    +      restartterm             screen
    +      ripoffline              global (static data)
    +      savetty                 terminal
    +      scanw                   screen
    +      scr_dump                screen
    +      scr_init                screen
    +      scr_restore             screen
    +      scr_set                 screen
    +      scrl                    window (stdscr)
    +      scroll                  window
    +      scrollok                window
    +      set_curterm             screen
    +      set_escdelay            screen
    +      set_tabsize             screen
    +      set_term                global locks(screenlist, screen)
    +      setcchar                reentrant
    +      setscrreg               window (stdscr)
    +      setupterm               global
    +      slk_attr                screen
    +      slk_attr_off            screen
    +      slk_attr_on             screen
    +      slk_attr_set            screen
    +      slk_attroff             screen
    +      slk_attron              screen
    +      slk_attrset             screen
    +      slk_clear               screen
    +
    +      slk_color               screen
    +      slk_init                screen
    +      slk_label               screen
    +      slk_noutrefresh         screen
    +      slk_refresh             screen
    +      slk_restore             screen
    +      slk_set                 screen
    +      slk_touch               screen
    +      slk_wset                screen
    +      standend                window
    +      standout                window
    +      start_color             screen
    +      stdscr                  screen (readonly)
    +      strcodes                global (readonly)
    +      strfnames               global (readonly)
    +      strnames                global (readonly)
    +      subpad                  window
    +      subwin                  window
    +      syncok                  window
    +      term_attrs              screen
    +      termattrs               screen
    +      termname                terminal
    +      tgetent                 global
    +      tgetflag                global
    +      tgetnum                 global
    +      tgetstr                 global
    +      tgoto                   global
    +      tigetflag               terminal
    +      tigetnum                terminal
    +      tigetstr                terminal
    +      timeout                 window (stdscr)
    +      touchline               window
    +      touchwin                window
    +      tparm                   global (static data)
    +      tputs                   screen
    +      trace                   global (static data)
    +      ttytype                 screen (readonly)
    +      typeahead               screen
    +      unctrl                  screen
    +      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)
    +      vid_attr                screen
    +      vid_puts                screen
    +      vidattr                 screen
    +      vidputs                 screen
    +      vline                   window (stdscr)
    +      vline_set               window (stdscr)
    +      vw_printw               window
    +      vw_scanw                screen
    +      vwprintw                window
    +      vwscanw                 screen
    +      wadd_wch                window
    +      wadd_wchnstr            window
    +      wadd_wchstr             window
    +      waddch                  window
    +      waddchnstr              window
    +      waddchstr               window
    +      waddnstr                window
    +
    +      waddnwstr               window
    +      waddstr                 window
    +      waddwstr                window
    +      wattr_get               window
    +      wattr_off               window
    +      wattr_on                window
    +      wattr_set               window
    +      wattroff                window
    +      wattron                 window
    +      wattrset                window
    +      wbkgd                   window
    +      wbkgdset                window
    +      wbkgrnd                 window
    +      wbkgrndset              window
    +      wborder                 window
    +      wborder_set             window
    +      wchgat                  window
    +      wclear                  window
    +      wclrtobot               window
    +      wclrtoeol               window
    +      wcolor_set              window
    +      wcursyncup              screen (affects window plus parents)
    +      wdelch                  window
    +      wdeleteln               window
    +      wecho_wchar             window
    +      wechochar               window
    +      wenclose                window
    +      werase                  window
    +      wget_wch                screen (input-operation)
    +      wget_wstr               screen (input-operation)
    +      wgetbkgrnd              window
    +      wgetch                  screen (input-operation)
    +      wgetn_wstr              screen (input-operation)
    +      wgetnstr                screen (input-operation)
    +      wgetparent              window
    +      wgetscrreg              window
    +      wgetstr                 screen (input-operation)
    +      whline                  window
    +      whline_set              window
    +      win_wch                 window
    +      win_wchnstr             window
    +      win_wchstr              window
    +      winch                   window
    +      winchnstr               window
    +      winchstr                window
    +      winnstr                 window
    +      winnwstr                window
    +      wins_nwstr              window
    +      wins_wch                window
    +      wins_wstr               window
    +      winsch                  window
    +      winsdelln               window
    +      winsertln               window
    +      winsnstr                window
    +      winsstr                 window
    +      winstr                  window
    +      winwstr                 window
    +      wmouse_trafo            window
    +      wmove                   window
    +      wnoutrefresh            screen
    +      wprintw                 window
    +      wredrawln               window
    +      wrefresh                screen
    +      wresize                 window locks(windowlist)
    +      wscanw                  screen
    +      wscrl                   window
    +
    +      wsetscrreg              window
    +      wstandend               window
    +      wstandout               window
    +      wsyncdown               screen (affects window plus parents)
    +      wsyncup                 screen (affects window plus parents)
    +      wtimeout                window
    +      wtouchln                window
    +      wunctrl                 global (static data)
    +      wvline                  window
    +      wvline_set              window
    +
    +
    +
    +

    RETURN VALUE

    +       These functions all return TRUE or FALSE, except as noted.
    +
    +
    +
    +

    NOTES

    +       Both a macro and a function are provided for each name.
    +
    +
    +
    +

    PORTABILITY

    +       These routines are specific to  ncurses.   They  were  not
    +       supported  on  Version 7, BSD or System V implementations.
    +       It is recommended that any code depending on  ncurses  ex-
    +       tensions be conditioned using NCURSES_VERSION.
    +
    +
    +
    +

    SEE ALSO

    +       curses(3x), curs_opaque(3x)
    +
    +
    +
    +                                                       curs_threads(3x)
    +
    +
    +
    +Man(1) output converted with +man2html +
    + + diff --git a/doc/html/man/curs_util.3x.html b/doc/html/man/curs_util.3x.html index cc499251..b377bcbe 100644 --- a/doc/html/man/curs_util.3x.html +++ b/doc/html/man/curs_util.3x.html @@ -27,7 +27,7 @@ * sale, use or other dealings in this Software without prior written * * authorization. * **************************************************************************** - * @Id: curs_util.3x,v 1.23 2007/02/24 15:59:07 tom Exp @ + * @Id: curs_util.3x,v 1.25 2007/05/26 21:44:42 tom Exp @ --> @@ -156,7 +156,27 @@ The XSI Curses standard, Issue 4 describes these func- tions. It states that unctrl and wunctrl will return a null pointer if unsuccessful, but does not define any er- - ror conditions. + ror conditions. This implementation checks for three cas- + es: + + - the parameter is a 7-bit US-ASCII code. This + is the case that X/Open Curses documented. + + - the parameter is in the range 128-159, i.e., a + C1 control code. If use_legacy_coding has + been called with a 2 parameter, unctrl returns + the parameter, i.e., a one-character string + with the parameter as the first character. + Otherwise, it returns ``~@'', ``~A'', etc., + analogous to ``^@'', ``^A'', C0 controls. + + X/Open Curses does not document whether unctrl + can be called before initializing curses. + This implementation permits that, and returns + the ``~@'', etc., values in that case. + + - parameter values outside the 0 to 255 range. + unctrl returns a null pointer. The SVr4 documentation describes the action of filter only in the vaguest terms. The description here is adapted @@ -169,11 +189,21 @@ implementations have different conventions. For example, they may show both sets of control characters with `^', and strip the parameter to 7 bits. Or they may ignore C1 - controls and treat all of the upper-1280 codes as print- + controls and treat all of the upper-128 codes as print- able. This implementation uses 8 bits but does not modify the string to reflect locale. The use_legacy_coding func- tion allows the caller to change the output of unctrl. + Likewise, the meta function allows the caller to change + the output of keyname, i.e., it determines whether to use + the `M-' prefix for ``meta'' keys (codes in the range 128 + to 255). Both use_legacy_coding and meta succeed only af- + ter curses is initialized. X/Open Curses does not docu- + ment the treatment of codes 128 to 159. When treating + them as ``meta'' keys (or if keyname is called before ini- + tializing curses), this implementation returns strings + ``M-^@'', ``M-^A'', etc. + The keyname function may return the names of user-defined string capabilities which are defined in the terminfo en- try via the -x option of tic. This implementation auto- @@ -192,7 +222,7 @@

    SEE ALSO

            legacy_coding(3x), curses(3x), curs_initscr(3x), curs_ker-
    -       nel(3x), curs_scr_dump(3x).
    +       nel(3x), curs_scr_dump(3x), legacy_coding(3x).
     
     
     
    diff --git a/doc/html/man/form.3x.html b/doc/html/man/form.3x.html
    index f7ef5957..9cf621ce 100644
    --- a/doc/html/man/form.3x.html
    +++ b/doc/html/man/form.3x.html
    @@ -2,7 +2,7 @@
     
     
     
    @@ -88,7 +88,7 @@
            data_ahead             form_data(3x)
            data_behind            form_data(3x)
            dup_field              form_field_new(3x)
    -       dynamic_fieldinfo      form_field_info(3x)
    +       dynamic_field_info     form_field_info(3x)
            field_arg              form_field_validation(3x)
            field_back             form_field_attributes(3x)
            field_buffer           form_field_buffer(3x)
    @@ -236,7 +236,7 @@
     
     

    SEE ALSO

    -       This describes ncurses version 5.6 (patch 20070303).
    +       This describes ncurses version 5.6 (patch 20080621).
     
     
     
    diff --git a/doc/html/man/form_driver.3x.html b/doc/html/man/form_driver.3x.html
    index 0d9efcfd..66eb7e6a 100644
    --- a/doc/html/man/form_driver.3x.html
    +++ b/doc/html/man/form_driver.3x.html
    @@ -1,7 +1,7 @@
     
     
     
     
    @@ -60,9 +60,21 @@
     

    DESCRIPTION

            Once a form has been posted (displayed), you should funnel
            input events to it through form_driver.  This routine  has
    -       two  major input cases; either the input is a form naviga-
    -       tion request or it's a  printable  ASCII  character.   The
    -       form driver requests are as follows:
    +       three major input cases:
    +
    +       -  The  input  is  a  form navigation request.  Navigation
    +          request codes are constants defined in <form.h>,  which
    +          are distinct from the key- and character codes returned
    +          by wgetch.
    +
    +       -  The input is a printable character.  Printable  charac-
    +          ters  (which  must  be  positive,  less  than  256) are
    +          checked according to the program's locale settings.
    +
    +       -  The input is the KEY_MOUSE special key associated  with
    +          an mouse event.
    +
    +       The form driver requests are as follows:
     
            REQ_NEXT_PAGE
                 Move to the next page.
    @@ -241,17 +253,62 @@
            REQ_PREV_CHOICE
                 Display previous field choice.
     
    -       If the second argument is a printable ASCII character, the
    +       If  the  second  argument  is  a  printable character, the
            driver places it in the current position  in  the  current
            field.   If  it is one of the forms requests listed above,
            that request is executed.
     
    -       If the second argument is neither printable ASCII nor  one
    -       of the above pre-defined form requests, the driver assumes
    -       it  is  an  application-specific   command   and   returns
    -       E_UNKNOWN_COMMAND.  Application-defined commands should be
    -       defined relative to  MAX_COMMAND,  the  maximum  value  of
    -       these pre-defined requests.
    +   MOUSE HANDLING
    +       If the second argument is the KEY_MOUSE special  key,  the
    +       associated mouse event is translated into one of the above
    +       pre-defined requests.  Currently only clicks in  the  user
    +       window  (e.g.  inside the form display area or the decora-
    +       tion window) are handled.
    +
    +       If you click above the display region of the form:
    +
    +              a REQ_PREV_FIELD is generated for a single click,
    +
    +              a REQ_PREV_PAGE is generated for a double-click and
    +
    +              a REQ_FIRST_FIELD is generated for a  triple-click.
    +
    +       If you click below the display region of the form:
    +
    +              a REQ_NEXT_FIELD is generated for a single click,
    +
    +              a REQ_NEXT_PAGE is generated for a double-click and
    +
    +              a REQ_LAST_FIELD is generated for a triple-click.
    +
    +       If you click at an field inside the display  area  of  the
    +       form:
    +
    +              -  the form cursor is positioned to that field.
    +
    +              -  If  you double-click a field, the form cursor is
    +                 positioned to that field  and  E_UNKNOWN_COMMAND
    +                 is  returned.   This  return  value makes sense,
    +                 because a double click  usually  means  that  an
    +                 field-specific action should be returned.  It is
    +                 exactly the purpose of this return value to sig-
    +                 nal  that an application specific command should
    +                 be executed.
    +
    +              -  If  a  translation  into  a  request  was  done,
    +                 form_driver  returns the result of this request.
    +
    +       If you clicked outside the user window or the mouse  event
    +       could   not   be   translated   into  a  form  request  an
    +       E_REQUEST_DENIED is returned.
    +
    +   APPLICATION-DEFINED COMMANDS
    +       If the second argument is neither printable nor one of the
    +       above  pre-defined form requests, the driver assumes it is
    +       an application-specific command and returns E_UNKNOWN_COM-
    +       MAND.  Application-defined commands should be defined rel-
    +       ative to MAX_COMMAND, the  maximum  value  of  these  pre-
    +       defined requests.
     
     
     
    @@ -286,7 +343,7 @@

    SEE ALSO

    -       curses(3x), form(3x).
    +       curses(3x), form(3x), wgetch(3x).
     
     
     
    diff --git a/doc/html/man/form_field_new.3x.html b/doc/html/man/form_field_new.3x.html index de6a498a..1a0269a8 100644 --- a/doc/html/man/form_field_new.3x.html +++ b/doc/html/man/form_field_new.3x.html @@ -2,7 +2,7 @@ @@ -129,7 +129,7 @@ It may be unwise to count on the set of attributes copied by dup_field being portable; the System V forms library documents are not very explicit about what gets copied and - what doesn't. + what does not. diff --git a/doc/html/man/infocmp.1m.html b/doc/html/man/infocmp.1m.html index 7bdc3bf2..eaea4380 100644 --- a/doc/html/man/infocmp.1m.html +++ b/doc/html/man/infocmp.1m.html @@ -423,7 +423,7 @@ captoinfo(1m), infotocap(1m), tic(1m), toe(1m), curses(3x), terminfo(5). - This describes ncurses version 5.6 (patch 20070303). + This describes ncurses version 5.6 (patch 20080621). diff --git a/doc/html/man/infotocap.1m.html b/doc/html/man/infotocap.1m.html index 28ce9604..a7b058fd 100644 --- a/doc/html/man/infotocap.1m.html +++ b/doc/html/man/infotocap.1m.html @@ -93,7 +93,7 @@

    SEE ALSO

            curses(3x), tic(1m), infocmp(1m), terminfo(5)
     
    -       This describes ncurses version 5.6 (patch 20070303).
    +       This describes ncurses version 5.6 (patch 20080621).
     
     
     
    diff --git a/doc/html/man/menu.3x.html b/doc/html/man/menu.3x.html
    index 64be8a86..941ebd6e 100644
    --- a/doc/html/man/menu.3x.html
    +++ b/doc/html/man/menu.3x.html
    @@ -226,7 +226,7 @@
     
     

    SEE ALSO

    -       This describes ncurses version 5.6 (patch 20070303).
    +       This describes ncurses version 5.6 (patch 20080621).
     
     
     
    diff --git a/doc/html/man/menu_driver.3x.html b/doc/html/man/menu_driver.3x.html
    index 61824059..c5926994 100644
    --- a/doc/html/man/menu_driver.3x.html
    +++ b/doc/html/man/menu_driver.3x.html
    @@ -1,7 +1,7 @@
     
     
     
     
    @@ -60,9 +60,20 @@
     

    DESCRIPTION

            Once a menu has been posted (displayed), you should funnel
            input events to it through menu_driver.  This routine  has
    -       three  major input cases; either the input is a menu navi-
    -       gation request, it's a printable ASCII character or it  is
    -       the  KEY_MOUSE special key associated with an mouse event.
    +       three major input cases:
    +
    +       -  The  input  is  a  form navigation request.  Navigation
    +          request codes are constants defined in <form.h>,  which
    +          are distinct from the key- and character codes returned
    +          by wgetch.
    +
    +       -  The input is a printable character.  Printable  charac-
    +          ters  (which  must  be  positive,  less  than  256) are
    +          checked according to the program's locale settings.
    +
    +       -  The input is the KEY_MOUSE special key associated  with
    +          an mouse event.
    +
            The menu driver requests are as follows:
     
            REQ_LEFT_ITEM
    @@ -108,7 +119,7 @@
                 Clear the menu pattern buffer.
     
            REQ_BACK_PATTERN
    -            Delete  the  previous  character  from  the   pattern
    +            Delete   the  previous  character  from  the  pattern
                 buffer.
     
            REQ_NEXT_MATCH
    @@ -117,45 +128,65 @@
            REQ_PREV_MATCH
                 Move to the previous item matching the pattern match.
     
    -       If the second argument is a printable ASCII character, the
    -       code appends it to the pattern buffer and attempts to move
    -       to the next item matching the new pattern.  If there is no
    +       If  the second argument is a printable character, the code
    +       appends it to the pattern buffer and attempts to  move  to
    +       the  next  item  matching the new pattern.  If there is no
            such match, menu_driver returns E_NO_MATCH and deletes the
            appended character from the buffer.
     
    -       If the second argument is one  of  the  above  pre-defined
    +       If  the  second  argument  is one of the above pre-defined
            requests, the corresponding action is performed.
     
    -       If  the  second argument is the KEY_MOUSE special key, the
    +   MOUSE HANDLING
    +       If the second argument is the KEY_MOUSE special  key,  the
            associated mouse event is translated into one of the above
    -       pre-defined  requests.   Currently only clicks in the user
    -       window (e.g. inside the menu display area or  the  decora-
    -       tion  window)  are handled. If you click above the display
    -       region of the menu, a REQ_SCR_ULINE is generated,  if  you
    -       doubleclick  a  REQ_SCR_UPAGE  is  generated  and  if  you
    -       tripleclick a REQ_FIRST_ITEM is generated.  If  you  click
    -       below  the  display region of the menu, a REQ_SCR_DLINE is
    -       generated, if you doubleclick a REQ_SCR_DPAGE is generated
    -       and  if  you  tripleclick a REQ_LAST_ITEM is generated. If
    -       you click at an item inside the display area of the  menu,
    -       the menu cursor is positioned to that item. If you double-
    -       click at  an  item  a  REQ_TOGGLE_ITEM  is  generated  and
    -       E_UNKNOWN_COMMAND  is  returned.  This  return value makes
    -       sense, because a double click usually means that an  item-
    -       specific  action should be returned. It's exactly the pur-
    -       pose of this return value to signal  that  an  application
    -       specific command should be executed. If a translation into
    -       a request was done, menu_driver returns the result of this
    -       request.   If  you  clicked outside the user window or the
    -       mouse event couldn't be translated into a menu request  an
    +       pre-defined requests.  Currently only clicks in  the  user
    +       window  (e.g.  inside the menu display area or the decora-
    +       tion window) are handled.
    +
    +       If you click above the display region of the menu:
    +
    +              a REQ_SCR_ULINE is generated for a single click,
    +
    +              a REQ_SCR_UPAGE is generated for a double-click and
    +
    +              a REQ_FIRST_ITEM is generated for a triple-click.
    +
    +       If you click below the display region of the menu:
    +
    +              a REQ_SCR_DLINE is generated for a single click,
    +
    +              a REQ_SCR_DPAGE is generated for a double-click and
    +
    +              a REQ_LAST_ITEM is generated for a triple-click.
    +
    +       If you click at an item inside the  display  area  of  the
    +       menu:
    +
    +              -  the menu cursor is positioned to that item.
    +
    +              -  If you double-click an item a REQ_TOGGLE_ITEM is
    +                 generated  and  E_UNKNOWN_COMMAND  is  returned.
    +                 This  return value makes sense, because a double
    +                 click usually means that an item-specific action
    +                 should  be  returned.  It is exactly the purpose
    +                 of this return value to signal that an  applica-
    +                 tion specific command should be executed.
    +
    +              -  If  a  translation  into  a  request  was  done,
    +                 menu_driver returns the result of this  request.
    +
    +       If  you clicked outside the user window or the mouse event
    +       could  not  be  translated  into   a   menu   request   an
            E_REQUEST_DENIED is returned.
     
    -       If  the second argument is neither printable ASCII nor one
    -       of the above pre-defined menu requests or  KEY_MOUSE,  the
    -       drive  assumes  it  is an application-specific command and
    -       returns E_UNKNOWN_COMMAND.   Application-defined  commands
    -       should  be  defined  relative  to MAX_COMMAND, the maximum
    -       value of these pre-defined requests.
    +   APPLICATION-DEFINED COMMANDS
    +       If the second argument is neither printable nor one of the
    +       above pre-defined menu requests or  KEY_MOUSE,  the  drive
    +       assumes  it is an application-specific command and returns
    +       E_UNKNOWN_COMMAND.  Application-defined commands should be
    +       defined  relative  to  MAX_COMMAND,  the  maximum value of
    +       these pre-defined requests.
     
     
     
    @@ -190,7 +221,7 @@

    SEE ALSO

    -       curses(3x), menu(3x).
    +       curses(3x), menu(3x), wgetch(3x).
     
     
     
    diff --git a/doc/html/man/menu_pattern.3x.html b/doc/html/man/menu_pattern.3x.html index e39be1ed..0345c567 100644 --- a/doc/html/man/menu_pattern.3x.html +++ b/doc/html/man/menu_pattern.3x.html @@ -1,7 +1,7 @@ @@ -60,9 +60,9 @@

    DESCRIPTION

            Every  menu  has  an  associated pattern match buffer.  As
    -       input events that are printable ASCII characters come  in,
    -       they  are  appended  to this match buffer and tested for a
    -       match, as described in menu_driver(3x).
    +       input events that are printable characters come  in,  they
    +       are  appended to this match buffer and tested for a match,
    +       as described in menu_driver(3x).
     
            The function set_menu_pattern sets the pattern buffer  for
            the  given menu and tries to find the first matching item.
    diff --git a/doc/html/man/ncurses.3x.html b/doc/html/man/ncurses.3x.html
    index e3d6d08b..a825da78 100644
    --- a/doc/html/man/ncurses.3x.html
    +++ b/doc/html/man/ncurses.3x.html
    @@ -2,7 +2,7 @@
     
     
     
    @@ -63,16 +63,22 @@
            sonable   optimization.    This  implementation  is  ``new
            curses'' (ncurses) and is  the  approved  replacement  for
            4.4BSD  classic curses, which has been discontinued.  This
    -       describes ncurses version 5.6 (patch 20070303).
    -
    -       The ncurses routines emulate  the  curses(3x)  library  of
    -       System V Release 4 UNIX, and the XPG4 curses standard (XSI
    -       curses) but the ncurses library is freely  redistributable
    -       in source form.  Differences from the SVr4 curses are sum-
    -       marized under  the  EXTENSIONS  and  PORTABILITY  sections
    -       below  and  described  in  detail in the respective EXTEN-
    -       SIONS, PORTABILITY and BUGS  sections  of  individual  man
    -       pages.
    +       describes ncurses version 5.6 (patch 20080621).
    +
    +       The ncurses library emulates  the  curses(3x)  library  of
    +       System  V  Release  4  UNIX,  and XPG4 (X/Open Portability
    +       Guide) curses (also known as XSI curses).  XSI stands  for
    +       X/Open  System  Interfaces Extension.  The ncurses library
    +       is freely redistributable  in  source  form.   Differences
    +       from  the  SVr4 curses are summarized under the EXTENSIONS
    +       and PORTABILITY sections below and described in detail  in
    +       the  respective  EXTENSIONS, PORTABILITY and BUGS sections
    +       of individual man pages.
    +
    +       The ncurses library also provides many useful  extensions,
    +       i.e.,  features  which  cannot  be implemented by a simple
    +       add-on library but which require access to  the  internals
    +       of the library.
     
            A  program  using  these  routines must be linked with the
            -lncurses option, or (if it has been generated)  with  the
    @@ -106,8 +112,8 @@
                  intrflush(stdscr, FALSE);
                  keypad(stdscr, TRUE);
     
    -       Before  a curses program is run, the tab stops of the ter-
    -       minal should be set and  its  initialization  strings,  if
    +       Before  a  curses  program  is  run,  the tab stops of the
    +       terminal should be set and its initialization strings,  if
            defined,  must  be  output.  This can be done by executing
            the tput init command after the shell environment variable
            TERM  has  been  exported.  tset(1) is usually responsible
    @@ -121,9 +127,9 @@
            be created with newwin.
     
            Note  that  curses  does  not  handle overlapping windows,
    -       that's done by the panel(3x) library. This means that  you
    +       that's done by the panel(3x) library.  This means that you
            can either use stdscr or divide the screen into tiled win-
    -       dows and not using stdscr at  all.  Mixing  the  two  will
    +       dows and not using stdscr at all.   Mixing  the  two  will
            result in unpredictable, and undesired, effects.
     
            Windows are referred to by variables declared as WINDOW *.
    @@ -160,7 +166,7 @@
            If the environment variables LINES and COLUMNS are set, or
            if the program is executing in a window environment,  line
            and  column  information  in the environment will override
    -       information read by terminfo.  This would effect a program
    +       information read by terminfo.  This would affect a program
            running  in an AT&T 630 layer, for example, where the size
            of a screen is changeable (see ENVIRONMENT).
     
    @@ -218,11 +224,67 @@
            DOW.
     
            Option setting routines require a Boolean flag bf with the
    -       value TRUE or FALSE; bf is always of type bool.  The vari-
    -       ables ch and attrs below are always of type  chtype.   The
    -       types  WINDOW,  SCREEN,  bool,  and  chtype are defined in
    -       <curses.h>.  The type TERMINAL  is  defined  in  <term.h>.
    -       All other arguments are integers.
    +       value  TRUE  or FALSE; bf is always of type bool.  Most of
    +       the data types used in the library routines, such as  WIN-
    +       DOW,  SCREEN,  bool, and chtype are defined in <curses.h>.
    +       Types used for the terminfo routines such as TERMINAL  are
    +       defined in <term.h>.
    +
    +       This  manual  page describes functions which may appear in
    +       any configuration of the library.  There  are  two  common
    +       configurations of the library:
    +
    +              ncurses
    +                   the  "normal"  library,  which  handles  8-bit
    +                   characters.  The normal (8-bit) library stores
    +                   characters  combined with attributes in chtype
    +                   data.
    +
    +                   Attributes alone (no corresponding  character)
    +                   may  be  stored  in  chtype  or the equivalent
    +                   attr_t data.  In  either  case,  the  data  is
    +                   stored in something like an integer.
    +
    +                   Each  cell  (row  and  column)  in a WINDOW is
    +                   stored as a chtype.
    +
    +              ncursesw
    +                   the so-called "wide"  library,  which  handles
    +                   multibyte   characters  (See  the  section  on
    +                   ALTERNATE CONFIGURATIONS).  The "wide" library
    +                   includes  all  of  the calls from the "normal"
    +                   library.  It adds about one third  more  calls
    +                   using data types which store multibyte charac-
    +                   ters:
    +
    +                   cchar_t
    +                        corresponds to chtype.  However it  is  a
    +                        structure,  because  more  data is stored
    +                        than can fit into an integer.  The  char-
    +                        acters are large enough to require a full
    +                        integer value - and  there  may  be  more
    +                        than  one  character per cell.  The video
    +                        attributes and color are stored in  sepa-
    +                        rate fields of the structure.
    +
    +                        Each cell (row and column) in a WINDOW is
    +                        stored as a cchar_t.
    +
    +                   wchar_t
    +                        stores a "wide" character.  Like  chtype,
    +                        this may be an integer.
    +
    +                   wint_t
    +                        stores  a wchar_t or WEOF - not the same,
    +                        though both may have the same size.
    +
    +                   The  "wide"  library  provides  new  functions
    +                   which  are analogous to functions in the "nor-
    +                   mal" library.  There is  a  naming  convention
    +                   which  relates  many  of the normal/wide vari-
    +                   ants: a "_w" is inserted into the  name.   For
    +                   example, waddch becomes wadd_wch.
    +
     
        Routine Name Index
            The following table lists each curses routine and the name
    @@ -244,11 +306,11 @@
                   _tracedump              curs_trace(3x)*
                   _tracef                 curs_trace(3x)*
                   _tracemouse             curs_trace(3x)*
    -
                   add_wch                 curs_add_wch(3x)
                   add_wchnstr             curs_add_wchstr(3x)
                   add_wchstr              curs_add_wchstr(3x)
                   addch                   curs_addch(3x)
    +
                   addchnstr               curs_addchstr(3x)
                   addchstr                curs_addchstr(3x)
                   addnstr                 curs_addstr(3x)
    @@ -309,16 +371,25 @@
                   flushinp                curs_util(3x)
                   get_wch                 curs_get_wch(3x)
                   get_wstr                curs_get_wstr(3x)
    +              getattrs                curs_attr(3x)
    +              getbegx                 curs_legacy(3x)*
    +              getbegy                 curs_legacy(3x)*
                   getbegyx                curs_getyx(3x)
    -
                   getbkgd                 curs_bkgd(3x)
    +
                   getbkgrnd               curs_bkgrnd(3x)
                   getcchar                curs_getcchar(3x)
                   getch                   curs_getch(3x)
    +              getcurx                 curs_legacy(3x)*
    +              getcury                 curs_legacy(3x)*
    +              getmaxx                 curs_legacy(3x)*
    +              getmaxy                 curs_legacy(3x)*
                   getmaxyx                curs_getyx(3x)
                   getmouse                curs_mouse(3x)*
                   getn_wstr               curs_get_wstr(3x)
                   getnstr                 curs_getstr(3x)
    +              getparx                 curs_legacy(3x)*
    +              getpary                 curs_legacy(3x)*
                   getparyx                curs_getyx(3x)
                   getstr                  curs_getstr(3x)
                   getsyx                  curs_kernel(3x)
    @@ -356,10 +427,22 @@
                   instr                   curs_instr(3x)
                   intrflush               curs_inopts(3x)
                   inwstr                  curs_inwstr(3x)
    +              is_cleared              curs_opaque(3x)*
    +              is_idcok                curs_opaque(3x)*
    +              is_idlok                curs_opaque(3x)*
    +              is_immedok              curs_opaque(3x)*
    +              is_keypad               curs_opaque(3x)*
    +              is_leaveok              curs_opaque(3x)*
                   is_linetouched          curs_touch(3x)
    +              is_nodelay              curs_opaque(3x)*
    +              is_notimeout            curs_opaque(3x)*
    +              is_scrollok             curs_opaque(3x)*
    +              is_syncok               curs_opaque(3x)*
    +              is_term_resized         resizeterm(3x)*
                   is_wintouched           curs_touch(3x)
                   isendwin                curs_initscr(3x)
                   key_defined             key_defined(3x)*
    +
                   key_name                curs_util(3x)
                   keybound                keybound(3x)*
                   keyname                 curs_util(3x)
    @@ -376,7 +459,6 @@
                   mousemask               curs_mouse(3x)*
                   move                    curs_move(3x)
                   mvadd_wch               curs_add_wch(3x)
    -
                   mvadd_wchnstr           curs_add_wchstr(3x)
                   mvadd_wchstr            curs_add_wchstr(3x)
                   mvaddch                 curs_addch(3x)
    @@ -426,6 +508,7 @@
                   mvwaddchstr             curs_addchstr(3x)
                   mvwaddnstr              curs_addstr(3x)
                   mvwaddnwstr             curs_addwstr(3x)
    +
                   mvwaddstr               curs_addstr(3x)
                   mvwaddwstr              curs_addwstr(3x)
                   mvwchgat                curs_attr(3x)
    @@ -442,7 +525,6 @@
                   mvwin_wch               curs_in_wch(3x)
                   mvwin_wchnstr           curs_in_wchstr(3x)
                   mvwin_wchstr            curs_in_wchstr(3x)
    -
                   mvwinch                 curs_inch(3x)
                   mvwinchnstr             curs_inchstr(3x)
                   mvwinchstr              curs_inchstr(3x)
    @@ -468,6 +550,7 @@
                   nocbreak                curs_inopts(3x)
                   nodelay                 curs_inopts(3x)
                   noecho                  curs_inopts(3x)
    +              nofilter                curs_util(3x)*
                   nonl                    curs_outopts(3x)
                   noqiflush               curs_inopts(3x)
                   noraw                   curs_inopts(3x)
    @@ -491,6 +574,7 @@
                   resizeterm              resizeterm(3x)*
                   restartterm             curs_terminfo(3x)
                   ripoffline              curs_kernel(3x)
    +
                   savetty                 curs_kernel(3x)
                   scanw                   curs_scanw(3x)
                   scr_dump                curs_scr_dump(3x)
    @@ -508,7 +592,6 @@
                   setterm                 curs_terminfo(3x)
                   setupterm               curs_terminfo(3x)
                   slk_attr                curs_slk(3x)*
    -
                   slk_attr_off            curs_slk(3x)
                   slk_attr_on             curs_slk(3x)
                   slk_attr_set            curs_slk(3x)
    @@ -557,6 +640,8 @@
                   use_default_colors      default_colors(3x)*
                   use_env                 curs_util(3x)
                   use_extended_names      curs_extend(3x)*
    +
    +              use_legacy_coding       legacy_coding(3x)*
                   vid_attr                curs_terminfo(3x)
                   vid_puts                curs_terminfo(3x)
                   vidattr                 curs_terminfo(3x)
    @@ -574,7 +659,6 @@
                   waddchnstr              curs_addchstr(3x)
                   waddchstr               curs_addchstr(3x)
                   waddnstr                curs_addstr(3x)
    -
                   waddnwstr               curs_addwstr(3x)
                   waddstr                 curs_addstr(3x)
                   waddwstr                curs_addwstr(3x)
    @@ -622,6 +706,7 @@
                   winnwstr                curs_inwstr(3x)
                   wins_nwstr              curs_ins_wstr(3x)
                   wins_wch                curs_ins_wch(3x)
    +
                   wins_wstr               curs_ins_wstr(3x)
                   winsch                  curs_insch(3x)
                   winsdelln               curs_deleteln(3x)
    @@ -640,7 +725,6 @@
                   wscanw                  curs_scanw(3x)
                   wscrl                   curs_scroll(3x)
                   wsetscrreg              curs_outopts(3x)
    -
                   wstandend               curs_attr(3x)
                   wstandout               curs_attr(3x)
                   wsyncdown               curs_window(3x)
    @@ -776,12 +860,12 @@
                 nal's  default   colors   are   white-on-black   (see
                 default_colors(3x)).   You may set the foreground and
                 background color values with this  environment  vari-
    -            able     by     proving     a     2-element     list:
    -            foreground,background.  For example, to tell  ncurses
    -            to  not assume anything about the colors, set this to
    -            "-1,-1".  To make it green-on-black, set it to "2,0".
    -            Any positive value from zero to the terminfo max_col-
    -            ors value is allowed.
    +            able  by  proving  a 2-element list: foreground,back-
    +            ground.  For example, to tell ncurses to  not  assume
    +            anything  about  the colors, set this to "-1,-1".  To
    +            make it green-on-black, set it to "2,0".   Any  posi-
    +            tive value from zero to the terminfo max_colors value
    +            is allowed.
     
            NCURSES_NO_HARD_TABS
                 Ncurses may use tabs as part of the  cursor  movement
    @@ -909,12 +993,12 @@
     
            TERMPATH
                 If TERMCAP does not hold a  file  name  then  ncurses
    -            checks  the  TERMPATH  symbol.   This  is  a  list of
    -            filenames separated by spaces or colons  (i.e.,  ":")
    -            on  Unix,  semicolons  on  OS/2 EMX.  If the TERMPATH
    -            symbol  is  not  set,  ncurses  looks  in  the  files
    -            /etc/termcap,       /usr/share/misc/termcap       and
    -            $HOME/.termcap, in that order.
    +            checks  the TERMPATH symbol.  This is a list of file-
    +            names separated by spaces or colons  (i.e.,  ":")  on
    +            Unix, semicolons on OS/2 EMX.  If the TERMPATH symbol
    +            is not set, ncurses looks in the files  /etc/termcap,
    +            /usr/share/misc/termcap  and  $HOME/.termcap, in that
    +            order.
     
            The library may be configured to disregard  the  following
            variables  when  the current user is the superuser (root),
    @@ -964,9 +1048,9 @@
                 extended (wide-character)  functions.   The  curses.h
                 file   which  is  installed  for  the  wide-character
                 library is designed to be compatible with the  normal
    -            library's header.  Only the size of the WINDOW struc-
    -            ture differs, and very few applications require  more
    -            than  a  pointer  to  WINDOWs.   If  the  headers are
    +            library's  header.   Only  the  size  of  the  WINDOW
    +            structure differs, and very few applications  require
    +            more  than  a pointer to WINDOWs.  If the headers are
                 installed  allowing  overwrite,  the   wide-character
                 library's  headers should be installed last, to allow
                 applications to be built using  either  library  from
    @@ -980,10 +1064,10 @@
     
            --with-profile
                 The  shared  and normal (static) library names differ
    -            by   their   suffixes,   e.g.,   libncurses.so    and
    -            libncurses.a.   The debug and profiling libraries add
    -            a "_g" and a "_p" to  the  root  names  respectively,
    -            e.g., libncurses_g.a and libncurses_p.a.
    +            by their  suffixes,  e.g.,  libncurses.so  and  libn-
    +            curses.a.   The  debug  and profiling libraries add a
    +            "_g" and a "_p" to the root names respectively, e.g.,
    +            libncurses_g.a and libncurses_p.a.
     
            --with-trace
                 The  trace  function  normally  resides  in the debug
    @@ -1018,7 +1102,7 @@
            in core and startup cycles.
     
            The ncurses  library  includes  facilities  for  capturing
    -       mouse  events  on certain terminals (including xterm). See
    +       mouse  events on certain terminals (including xterm).  See
            the curs_mouse(3x) manual page for details.
     
            The ncurses library includes facilities for responding  to
    @@ -1038,53 +1122,62 @@
            trols, which allow an application to reset the terminal to
            its  original  foreground and background colors.  From the
            users' perspective, the application is able to  draw  col-
    -       ored  text  on  a  background  whose color is set indepen-
    -       dently, providing better  control  over  color  contrasts.
    -       See the default_colors(3x) manual page for details.
    +       ored   text   on   a   background   whose   color  is  set
    +       independently, providing better control  over  color  con-
    +       trasts.    See  the  default_colors(3x)  manual  page  for
    +       details.
     
    -       The  ncurses  library  includes  a  function for directing
    -       application output to a printer attached to  the  terminal
    +       The ncurses library  includes  a  function  for  directing
    +       application  output  to a printer attached to the terminal
            device.  See the curs_print(3x) manual page for details.
     
     
     

    PORTABILITY

    -       The  ncurses  library is intended to be BASE-level confor-
    -       mant with the  XSI  Curses  standard.   The  EXTENDED  XSI
    -       Curses  functionality  (including  color  support) is sup-
    -       ported.
    +       The ncurses library is intended to be  BASE-level  confor-
    +       mant with XSI Curses.  The EXTENDED XSI Curses functional-
    +       ity (including color support) is supported.
     
            A small number of local differences (that  is,  individual
            differences  between the XSI Curses and ncurses calls) are
            described in  PORTABILITY  sections  of  the  library  man
            pages.
     
    -       The routine has_key is not part of XPG4, nor is it present
    -       in SVr4.  See the curs_getch(3x) manual page for  details.
    +       This implementation also contains several extensions:
     
    -       The  routine  slk_attr  is  not  part  of  XPG4, nor is it
    -       present in SVr4.  See the  curs_slk(3x)  manual  page  for
    -       details.
    +            The  routine  has_key  is not part of XPG4, nor is it
    +            present in SVr4.  See the curs_getch(3x) manual  page
    +            for details.
     
    -       The  routines getmouse, mousemask, ungetmouse, mouseinter-
    -       val, and wenclose relating to mouse  interfacing  are  not
    -       part  of  XPG4,  nor  are  they  present in SVr4.  See the
    -       curs_mouse(3x) manual page for details.
    +            The  routine  slk_attr is not part of XPG4, nor is it
    +            present in SVr4.  See the  curs_slk(3x)  manual  page
    +            for details.
     
    -       The routine mcprint was not present in any previous curses
    -       implementation.   See  the  curs_print(3x) manual page for
    -       details.
    +            The  routines  getmouse,  mousemask, ungetmouse, mou-
    +            seinterval, and wenclose relating to mouse  interfac-
    +            ing  are  not  part  of XPG4, nor are they present in
    +            SVr4.   See  the  curs_mouse(3x)  manual   page   for
    +            details.
    +
    +            The  routine  mcprint was not present in any previous
    +            curses implementation.  See the curs_print(3x) manual
    +            page for details.
    +
    +            The  routine  wresize  is not part of XPG4, nor is it
    +            present in SVr4.  See the wresize(3x) manual page for
    +            details.
     
    -       The routine wresize is not part of XPG4, nor is it present
    -       in SVr4.  See the wresize(3x) manual page for details.
    +            The WINDOW structure's internal details can be hidden
    +            from application programs.  See  curs_opaque(3x)  for
    +            the discussion of is_scrollok, etc.
     
            In  historic curses versions, delays embedded in the capa-
            bilities cr, ind, cub1, ff and tab activated corresponding
            delay  bits  in  the UNIX tty driver.  In this implementa-
    -       tion, all padding is done by NUL sends.   This  method  is
    -       slightly  more expensive, but narrows the interface to the
    -       UNIX kernel  significantly  and  increases  the  package's
    -       portability correspondingly.
    +       tion, all padding is done  by  sending  NUL  bytes.   This
    +       method  is slightly more expensive, but narrows the inter-
    +       face to the UNIX kernel significantly  and  increases  the
    +       package's portability correspondingly.
     
     
     
    diff --git a/doc/html/man/panel.3x.html b/doc/html/man/panel.3x.html index f6e27505..c40c7db0 100644 --- a/doc/html/man/panel.3x.html +++ b/doc/html/man/panel.3x.html @@ -1,7 +1,7 @@ @@ -102,7 +102,7 @@ (causes it to be displayed above any other panel) and returns a pointer to the new panel. - voidupdate_panels() + update_panels() refreshes the virtual screen to reflect the rela- tions between the panels in the stack, but does not call doupdate() to refresh the physical screen. @@ -121,6 +121,11 @@ thus hides it from view. The PANEL structure is not lost, merely removed from the stack. + panel_hidden(pan) + returns TRUE if the panel is in the panel stack, + FALSE if it is not. If the panel is a null + pointer, return ERR. + show_panel(pan) makes a hidden panel visible by placing it on top of the panels in the panel stack. See COMPATIBILITY @@ -178,10 +183,10 @@

    COMPATIBILITY

            Reasonable  care  has been taken to  ensure  compatibility
            with  the  native  panel  facility  introduced  in  SVr3.2
    -       (inspection of the SVr4 manual pages suggests the program-
    -       ming interface is unchanged).  The PANEL  data  structures
    -       are  merely   similar. The  programmer is cautioned not to
    -       directly use PANEL fields.
    +       (inspection   of   the  SVr4  manual  pages  suggests  the
    +       programming  interface  is  unchanged).   The  PANEL  data
    +       structures  are  merely   similar. The  programmer is cau-
    +       tioned not to directly use PANEL fields.
     
            The functions show_panel() and top_panel()  are  identical
            in  this  implementation,  and work equally well with dis-
    @@ -213,7 +218,7 @@
     

    SEE ALSO

            curses(3x)
     
    -       This describes ncurses version 5.6 (patch 20070303).
    +       This describes ncurses version 5.6 (patch 20080621).
     
     
     
    diff --git a/doc/html/man/term.7.html b/doc/html/man/term.7.html index 8d2573df..53ea633e 100644 --- a/doc/html/man/term.7.html +++ b/doc/html/man/term.7.html @@ -1,7 +1,7 @@ @@ -158,10 +158,10 @@ lows, it should indicate either the OS release level or the console driver release level. - The root name for a terminal emulator (assuming it doesn't - fit one of the standard ANSI or vt100 types) should be the - program name or a readily recognizable abbreviation of it - (i.e. versaterm, ctrm). + The root name for a terminal emulator (assuming it does + not fit one of the standard ANSI or vt100 types) should be + the program name or a readily recognizable abbreviation of + it (i.e. versaterm, ctrm). Following the root name, you may add any reasonable number of hyphen-separated feature suffixes. diff --git a/doc/html/man/terminfo.5.html b/doc/html/man/terminfo.5.html index 56b6b397..51a41ace 100644 --- a/doc/html/man/terminfo.5.html +++ b/doc/html/man/terminfo.5.html @@ -32,9 +32,9 @@ * sale, use or other dealings in this Software without prior written * * authorization. * **************************************************************************** - * @Id: terminfo.head,v 1.15 2006/12/24 18:04:42 tom Exp @ + * @Id: terminfo.head,v 1.16 2007/03/04 00:09:46 tom Exp @ * Head of terminfo man page ends here - * @Id: terminfo.tail,v 1.47 2006/12/24 18:14:22 tom Exp @ + * @Id: terminfo.tail,v 1.49 2008/02/16 20:57:43 tom Exp @ * Beginning of terminfo.tail file * This file is part of ncurses. * See "terminfo.head" for copyright. @@ -78,7 +78,7 @@ nals by giving a set of capabilities which they have, by specifying how to perform screen operations, and by speci- fying padding requirements and initialization sequences. - This describes ncurses version 5.6 (patch 20070303). + This describes ncurses version 5.6 (patch 20080621). Entries in terminfo consist of a sequence of `,' separated fields (embedded commas may be escaped with a backslash or @@ -1256,7 +1256,9 @@ %% outputs `%' %[[:]flags][width[.precision]][doxXs] - as in printf, flags are [-+#] and space + as in printf, flags are [-+#] and space. Use a `:' + to allow the next character to be a `-' flag, avoid- + ing interpreting "%-" as an operator. %c print pop() like %c in printf @@ -1378,12 +1380,12 @@ hpa (horizontal position absolute) and vpa (vertical posi- tion absolute). Sometimes these are shorter than the more general two parameter sequence (as with the hp2645) and - can be used in preference to cup. If there are parameter- - ized local motions (e.g., move n spaces to the right) - these can be given as cud, cub, cuf, and cuu with a single - parameter indicating how many spaces to move. These are - primarily useful if the terminal does not have cup, such - as the TEKTRONIX 4025. + can be used in preference to cup. If there are + parameterized local motions (e.g., move n spaces to the + right) these can be given as cud, cub, cuf, and cuu with a + single parameter indicating how many spaces to move. + These are primarily useful if the terminal does not have + cup, such as the TEKTRONIX 4025. If the terminal needs to be in a special mode when running a program that uses these capabilities, the codes to enter @@ -1510,10 +1512,10 @@ blank position on the current line. Give as smir the sequence to get into insert mode. Give as rmir the sequence to leave insert mode. Now give as ich1 any - sequence needed to be sent just before sending the charac- - ter to be inserted. Most terminals with a true insert - mode will not give ich1; terminals which send a sequence - to open a screen position should give it here. + sequence needed to be sent just before sending the + character to be inserted. Most terminals with a true + insert mode will not give ich1; terminals which send a + sequence to open a screen position should give it here. If your terminal has both, insert mode is usually prefer- able to ich1. Technically, you should not give both @@ -1642,9 +1644,9 @@ ;1 if p1 or p6 %?%p1%p6%|%t;1%; ;4 if p2 %?%p2%|%t;4%; ;5 if p4 %?%p4%|%t;5%; + ;7 if p1 or p3 %?%p1%p3%|%t;7%; ;8 if p7 %?%p7%|%t;8%; - m always m ^N or ^O if p9 ^N, else ^O %?%p9%t^N%e^O%; @@ -1708,69 +1710,70 @@ tion keys such as f0, f1, ..., f10, the codes they send can be given as kf0, kf1, ..., kf10. If these keys have labels other than the default f0 through f10, the labels - can be given as lf0, lf1, ..., lf10. The codes transmit- - ted by certain other special keys can be given: kll (home - down), kbs (backspace), ktbc (clear all tabs), kctab - (clear the tab stop in this column), kclr (clear screen or - erase key), kdch1 (delete character), kdl1 (delete line), - krmir (exit insert mode), kel (clear to end of line), ked - (clear to end of screen), kich1 (insert character or enter - insert mode), kil1 (insert line), knp (next page), kpp - (previous page), kind (scroll forward/down), kri (scroll - backward/up), khts (set a tab stop in this column). In - addition, if the keypad has a 3 by 3 array of keys includ- - ing the four arrow keys, the other five keys can be given - as ka1, ka3, kb2, kc1, and kc3. These keys are useful - when the effects of a 3 by 3 directional pad are needed. - - Strings to program function keys can be given as pfkey, - pfloc, and pfx. A string to program screen labels should - be specified as pln. Each of these strings takes two - parameters: the function key number to program (from 0 to - 10) and the string to program it with. Function key num- - bers out of this range may program undefined keys in a - terminal dependent manner. The difference between the - capabilities is that pfkey causes pressing the given key - to be the same as the user typing the given string; pfloc + can be given as lf0, lf1, ..., lf10. The codes + transmitted by certain other special keys can be given: + kll (home down), kbs (backspace), ktbc (clear all tabs), + kctab (clear the tab stop in this column), kclr (clear + screen or erase key), kdch1 (delete character), kdl1 + (delete line), krmir (exit insert mode), kel (clear to end + of line), ked (clear to end of screen), kich1 (insert + character or enter insert mode), kil1 (insert line), knp + (next page), kpp (previous page), kind (scroll for- + ward/down), kri (scroll backward/up), khts (set a tab stop + in this column). In addition, if the keypad has a 3 by 3 + array of keys including the four arrow keys, the other + five keys can be given as ka1, ka3, kb2, kc1, and kc3. + These keys are useful when the effects of a 3 by 3 direc- + tional pad are needed. + + Strings to program function keys can be given as pfkey, + pfloc, and pfx. A string to program screen labels should + be specified as pln. Each of these strings takes two + parameters: the function key number to program (from 0 to + 10) and the string to program it with. Function key num- + bers out of this range may program undefined keys in a + terminal dependent manner. The difference between the + capabilities is that pfkey causes pressing the given key + to be the same as the user typing the given string; pfloc causes the string to be executed by the terminal in local; - and pfx causes the string to be transmitted to the com- + and pfx causes the string to be transmitted to the com- puter. The capabilities nlab, lw and lh define the number of pro- - grammable screen labels and their width and height. If - there are commands to turn the labels on and off, give - them in smln and rmln. smln is normally output after one + grammable screen labels and their width and height. If + there are commands to turn the labels on and off, give + them in smln and rmln. smln is normally output after one or more pln sequences to make sure that the change becomes visible. Tabs and Initialization - If the terminal has hardware tabs, the command to advance - to the next tab stop can be given as ht (usually control - I). A ``back-tab'' command which moves leftward to the + If the terminal has hardware tabs, the command to advance + to the next tab stop can be given as ht (usually control + I). A ``back-tab'' command which moves leftward to the preceding tab stop can be given as cbt. By convention, if - the teletype modes indicate that tabs are being expanded - by the computer rather than being sent to the terminal, - programs should not use ht or cbt even if they are - present, since the user may not have the tab stops prop- - erly set. If the terminal has hardware tabs which are - initially set every n spaces when the terminal is powered - up, the numeric parameter it is given, showing the number - of spaces the tabs are set to. This is normally used by - the tset command to determine whether to set the mode for - hardware tab expansion, and whether to set the tab stops. - If the terminal has tab stops that can be saved in non- - volatile memory, the terminfo description can assume that + the teletype modes indicate that tabs are being expanded + by the computer rather than being sent to the terminal, + programs should not use ht or cbt even if they are + present, since the user may not have the tab stops prop- + erly set. If the terminal has hardware tabs which are + initially set every n spaces when the terminal is powered + up, the numeric parameter it is given, showing the number + of spaces the tabs are set to. This is normally used by + the tset command to determine whether to set the mode for + hardware tab expansion, and whether to set the tab stops. + If the terminal has tab stops that can be saved in non- + volatile memory, the terminfo description can assume that they are properly set. - Other capabilities include is1, is2, and is3, initializa- - tion strings for the terminal, iprog, the path name of a - program to be run to initialize the terminal, and if, the - name of a file containing long initialization strings. - These strings are expected to set the terminal into modes - consistent with the rest of the terminfo description. + Other capabilities include is1, is2, and is3, initializa- + tion strings for the terminal, iprog, the path name of a + program to be run to initialize the terminal, and if, the + name of a file containing long initialization strings. + These strings are expected to set the terminal into modes + consistent with the rest of the terminfo description. They are normally sent to the terminal, by the init option - of the tput program, each time the user logs in. They + of the tput program, each time the user logs in. They will be printed in the following order: run the program @@ -1790,106 +1793,106 @@ and finally output is3. - Most initialization is done with is2. Special terminal + Most initialization is done with is2. Special terminal modes can be set up without duplicating strings by putting - the common sequences in is2 and special cases in is1 and + the common sequences in is2 and special cases in is1 and is3. A set of sequences that does a harder reset from a totally unknown state can be given as rs1, rs2, rf and rs3, analo- - gous to is1 , is2 , if and is3 respectively. These - strings are output by the reset program, which is used - when the terminal gets into a wedged state. Commands are - normally placed in rs1, rs2 rs3 and rf only if they pro- - duce annoying effects on the screen and are not necessary - when logging in. For example, the command to set the - vt100 into 80-column mode would normally be part of is2, - but it causes an annoying glitch of the screen and is not - normally needed since the terminal is usually already in + gous to is1 , is2 , if and is3 respectively. These + strings are output by the reset program, which is used + when the terminal gets into a wedged state. Commands are + normally placed in rs1, rs2 rs3 and rf only if they pro- + duce annoying effects on the screen and are not necessary + when logging in. For example, the command to set the + vt100 into 80-column mode would normally be part of is2, + but it causes an annoying glitch of the screen and is not + normally needed since the terminal is usually already in 80 column mode. The reset program writes strings including iprog, etc., in - the same order as the init program, using rs1, etc., + the same order as the init program, using rs1, etc., instead of is1, etc. If any of rs1, rs2, rs3, or rf reset - capability strings are missing, the reset program falls + capability strings are missing, the reset program falls back upon the corresponding initialization capability string. If there are commands to set and clear tab stops, they can - be given as tbc (clear all tab stops) and hts (set a tab - stop in the current column of every row). If a more com- - plex sequence is needed to set the tabs than can be - described by this, the sequence can be placed in is2 or + be given as tbc (clear all tab stops) and hts (set a tab + stop in the current column of every row). If a more com- + plex sequence is needed to set the tabs than can be + described by this, the sequence can be placed in is2 or if. Delays and Padding - Many older and slower terminals do not support either + Many older and slower terminals do not support either XON/XOFF or DTR handshaking, including hard copy terminals - and some very archaic CRTs (including, for example, DEC - VT100s). These may require padding characters after cer- + and some very archaic CRTs (including, for example, DEC + VT100s). These may require padding characters after cer- tain cursor motions and screen changes. If the terminal uses xon/xoff handshaking for flow control - (that is, it automatically emits ^S back to the host when + (that is, it automatically emits ^S back to the host when its input buffers are close to full), set xon. This capa- - bility suppresses the emission of padding. You can also - set it for memory-mapped console devices effectively that - do not have a speed limit. Padding information should - still be included so that routines can make better deci- + bility suppresses the emission of padding. You can also + set it for memory-mapped console devices effectively that + do not have a speed limit. Padding information should + still be included so that routines can make better deci- sions about relative costs, but actual pad characters will not be transmitted. - If pb (padding baud rate) is given, padding is suppressed - at baud rates below the value of pb. If the entry has no - padding baud rate, then whether padding is emitted or not + If pb (padding baud rate) is given, padding is suppressed + at baud rates below the value of pb. If the entry has no + padding baud rate, then whether padding is emitted or not is completely controlled by xon. - If the terminal requires other than a null (zero) - character as a pad, then this can be given as pad. Only - the first character of the pad string is used. + If the terminal requires other than a null (zero) charac- + ter as a pad, then this can be given as pad. Only the + first character of the pad string is used. Status Lines - Some terminals have an extra `status line' which is not - normally used by software (and thus not counted in the + Some terminals have an extra `status line' which is not + normally used by software (and thus not counted in the terminal's lines capability). - The simplest case is a status line which is cursor- - addressable but not part of the main scrolling region on - the screen; the Heathkit H19 has a status line of this - kind, as would a 24-line VT100 with a 23-line scrolling - region set up on initialization. This situation is indi- + The simplest case is a status line which is cursor- + addressable but not part of the main scrolling region on + the screen; the Heathkit H19 has a status line of this + kind, as would a 24-line VT100 with a 23-line scrolling + region set up on initialization. This situation is indi- cated by the hs capability. Some terminals with status lines need special sequences to - access the status line. These may be expressed as a + access the status line. These may be expressed as a string with single parameter tsl which takes the cursor to - a given zero-origin column on the status line. The capa- + a given zero-origin column on the status line. The capa- bility fsl must return to the main-screen cursor positions - before the last tsl. You may need to embed the string - values of sc (save cursor) and rc (restore cursor) in tsl + before the last tsl. You may need to embed the string + values of sc (save cursor) and rc (restore cursor) in tsl and fsl to accomplish this. - The status line is normally assumed to be the same width - as the width of the terminal. If this is untrue, you can + The status line is normally assumed to be the same width + as the width of the terminal. If this is untrue, you can specify it with the numeric capability wsl. - A command to erase or blank the status line may be speci- + A command to erase or blank the status line may be speci- fied as dsl. - The boolean capability eslok specifies that escape + The boolean capability eslok specifies that escape sequences, tabs, etc., work ordinarily in the status line. - The ncurses implementation does not yet use any of these - capabilities. They are documented here in case they ever + The ncurses implementation does not yet use any of these + capabilities. They are documented here in case they ever become important. Line Graphics - Many terminals have alternate character sets useful for - forms-drawing. Terminfo and curses build in support for - the drawing characters supported by the VT100, with some - characters from the AT&T 4410v1 added. This alternate + Many terminals have alternate character sets useful for + forms-drawing. Terminfo and curses build in support for + the drawing characters supported by the VT100, with some + characters from the AT&T 4410v1 added. This alternate character set may be specified by the acsc capability. @@ -1929,58 +1932,58 @@ upper right corner ACS_URCORNER + k vertical line ACS_VLINE | x - The best way to define a new device's graphics set is to - add a column to a copy of this table for your terminal, - giving the character which (when emitted between - smacs/rmacs switches) will be rendered as the correspond- - ing graphic. Then read off the VT100/your terminal char- - acter pairs right to left in sequence; these become the + The best way to define a new device's graphics set is to + add a column to a copy of this table for your terminal, + giving the character which (when emitted between + smacs/rmacs switches) will be rendered as the correspond- + ing graphic. Then read off the VT100/your terminal char- + acter pairs right to left in sequence; these become the ACSC string. Color Handling - Most color terminals are either `Tektronix-like' or `HP- - like'. Tektronix-like terminals have a predefined set of - N colors (where N usually 8), and can set character-cell + Most color terminals are either `Tektronix-like' or `HP- + like'. Tektronix-like terminals have a predefined set of + N colors (where N usually 8), and can set character-cell foreground and background characters independently, mixing - them into N * N color-pairs. On HP-like terminals, the + them into N * N color-pairs. On HP-like terminals, the use must set each color pair up separately (foreground and - background are not independently settable). Up to M - color-pairs may be set up from 2*M different colors. + background are not independently settable). Up to M + color-pairs may be set up from 2*M different colors. ANSI-compatible terminals are Tektronix-like. Some basic color capabilities are independent of the color method. The numeric capabilities colors and pairs specify - the maximum numbers of colors and color-pairs that can be - displayed simultaneously. The op (original pair) string - resets foreground and background colors to their default - values for the terminal. The oc string resets all colors - or color-pairs to their default values for the terminal. - Some terminals (including many PC terminal emulators) - erase screen areas with the current background color - rather than the power-up default background; these should + the maximum numbers of colors and color-pairs that can be + displayed simultaneously. The op (original pair) string + resets foreground and background colors to their default + values for the terminal. The oc string resets all colors + or color-pairs to their default values for the terminal. + Some terminals (including many PC terminal emulators) + erase screen areas with the current background color + rather than the power-up default background; these should have the boolean capability bce. - To change the current foreground or background color on a - Tektronix-type terminal, use setaf (set ANSI foreground) - and setab (set ANSI background) or setf (set foreground) - and setb (set background). These take one parameter, the + To change the current foreground or background color on a + Tektronix-type terminal, use setaf (set ANSI foreground) + and setab (set ANSI background) or setf (set foreground) + and setb (set background). These take one parameter, the color number. The SVr4 documentation describes only - setaf/setab; the XPG4 draft says that "If the terminal + setaf/setab; the XPG4 draft says that "If the terminal supports ANSI escape sequences to set background and fore- - ground, they should be coded as setaf and setab, respec- - tively. If the terminal supports other escape sequences - to set background and foreground, they should be coded as - setf and setb, respectively. The vidputs() function and - the refresh functions use setaf and setab if they are + ground, they should be coded as setaf and setab, respec- + tively. If the terminal supports other escape sequences + to set background and foreground, they should be coded as + setf and setb, respectively. The vidputs() function and + the refresh functions use setaf and setab if they are defined." - The setaf/setab and setf/setb capabilities take a single + The setaf/setab and setf/setb capabilities take a single numeric argument each. Argument values 0-7 of setaf/setab - are portably defined as follows (the middle column is the + are portably defined as follows (the middle column is the symbolic #define available in the header for the curses or - ncurses libraries). The terminal hardware is free to map - these as it likes, but the RGB values indicate normal + ncurses libraries). The terminal hardware is free to map + these as it likes, but the RGB values indicate normal locations in color space. @@ -1994,7 +1997,7 @@ cyan COLOR_CYAN 6 0,max,max white COLOR_WHITE 7 max,max,max - The argument values of setf/setb historically correspond + The argument values of setf/setb historically correspond to a different mapping, i.e., Color #define Value RGB @@ -2007,32 +2010,32 @@ yellow COLOR_YELLOW 6 max,max,0 white COLOR_WHITE 7 max,max,max It is important to not confuse the two sets of color capa- - bilities; otherwise red/blue will be interchanged on the + bilities; otherwise red/blue will be interchanged on the display. - On an HP-like terminal, use scp with a color-pair number + On an HP-like terminal, use scp with a color-pair number parameter to set which color pair is current. - On a Tektronix-like terminal, the capability ccc may be - present to indicate that colors can be modified. If so, + On a Tektronix-like terminal, the capability ccc may be + present to indicate that colors can be modified. If so, the initc capability will take a color number (0 to colors - - 1)and three more parameters which describe the color. + - 1)and three more parameters which describe the color. These three parameters default to being interpreted as RGB - (Red, Green, Blue) values. If the boolean capability hls + (Red, Green, Blue) values. If the boolean capability hls is present, they are instead as HLS (Hue, Lightness, Satu- ration) indices. The ranges are terminal-dependent. - On an HP-like terminal, initp may give a capability for - changing a color-pair value. It will take seven parame- - ters; a color-pair number (0 to max_pairs - 1), and two - triples describing first background and then foreground - colors. These parameters must be (Red, Green, Blue) or + On an HP-like terminal, initp may give a capability for + changing a color-pair value. It will take seven parame- + ters; a color-pair number (0 to max_pairs - 1), and two + triples describing first background and then foreground + colors. These parameters must be (Red, Green, Blue) or (Hue, Lightness, Saturation) depending on hls. - On some color terminals, colors collide with highlights. + On some color terminals, colors collide with highlights. You can register these collisions with the ncv capability. - This is a bit-mask of attributes not to be used when col- - ors are enabled. The correspondence with the attributes + This is a bit-mask of attributes not to be used when col- + ors are enabled. The correspondence with the attributes understood by curses is as follows: @@ -2045,302 +2048,301 @@ A_BOLD 5 32 A_INVIS 6 64 A_PROTECT 7 128 - A_ALTCHARSET 8 256 - For example, on many IBM PC consoles, the underline - attribute collides with the foreground color blue and is - not available in color mode. These should have an ncv + For example, on many IBM PC consoles, the underline + attribute collides with the foreground color blue and is + not available in color mode. These should have an ncv capability of 2. - SVr4 curses does nothing with ncv, ncurses recognizes it + SVr4 curses does nothing with ncv, ncurses recognizes it and optimizes the output in favor of colors. Miscellaneous - If the terminal requires other than a null (zero) charac- - ter as a pad, then this can be given as pad. Only the - first character of the pad string is used. If the termi- + If the terminal requires other than a null (zero) charac- + ter as a pad, then this can be given as pad. Only the + first character of the pad string is used. If the termi- nal does not have a pad character, specify npc. Note that - ncurses implements the termcap-compatible PC variable; - though the application may set this value to something - other than a null, ncurses will test npc first and use + ncurses implements the termcap-compatible PC variable; + though the application may set this value to something + other than a null, ncurses will test npc first and use napms if the terminal has no pad character. - If the terminal can move up or down half a line, this can - be indicated with hu (half-line up) and hd (half-line + If the terminal can move up or down half a line, this can + be indicated with hu (half-line up) and hd (half-line down). This is primarily useful for superscripts and sub- - scripts on hard-copy terminals. If a hard-copy terminal - can eject to the next page (form feed), give this as ff + scripts on hard-copy terminals. If a hard-copy terminal + can eject to the next page (form feed), give this as ff (usually control L). - If there is a command to repeat a given character a given - number of times (to save time transmitting a large number - of identical characters) this can be indicated with the - parameterized string rep. The first parameter is the - character to be repeated and the second is the number of - times to repeat it. Thus, tparm(repeat_char, 'x', 10) is + If there is a command to repeat a given character a given + number of times (to save time transmitting a large number + of identical characters) this can be indicated with the + parameterized string rep. The first parameter is the + character to be repeated and the second is the number of + times to repeat it. Thus, tparm(repeat_char, 'x', 10) is the same as `xxxxxxxxxx'. - If the terminal has a settable command character, such as - the TEKTRONIX 4025, this can be indicated with cmdch. A + If the terminal has a settable command character, such as + the TEKTRONIX 4025, this can be indicated with cmdch. A prototype command character is chosen which is used in all - capabilities. This character is given in the cmdch capa- - bility to identify it. The following convention is sup- - ported on some UNIX systems: The environment is to be - searched for a CC variable, and if found, all occurrences + capabilities. This character is given in the cmdch capa- + bility to identify it. The following convention is sup- + ported on some UNIX systems: The environment is to be + searched for a CC variable, and if found, all occurrences of the prototype character are replaced with the character in the environment variable. - Terminal descriptions that do not represent a specific + Terminal descriptions that do not represent a specific kind of known terminal, such as switch, dialup, patch, and - network, should include the gn (generic) capability so - that programs can complain that they do not know how to - talk to the terminal. (This capability does not apply to - virtual terminal descriptions for which the escape + network, should include the gn (generic) capability so + that programs can complain that they do not know how to + talk to the terminal. (This capability does not apply to + virtual terminal descriptions for which the escape sequences are known.) - If the terminal has a ``meta key'' which acts as a shift - key, setting the 8th bit of any character transmitted, - this fact can be indicated with km. Otherwise, software + If the terminal has a ``meta key'' which acts as a shift + key, setting the 8th bit of any character transmitted, + this fact can be indicated with km. Otherwise, software will assume that the 8th bit is parity and it will usually - be cleared. If strings exist to turn this ``meta mode'' + be cleared. If strings exist to turn this ``meta mode'' on and off, they can be given as smm and rmm. - If the terminal has more lines of memory than will fit on - the screen at once, the number of lines of memory can be - indicated with lm. A value of lm#0 indicates that the + If the terminal has more lines of memory than will fit on + the screen at once, the number of lines of memory can be + indicated with lm. A value of lm#0 indicates that the number of lines is not fixed, but that there is still more memory than fits on the screen. If the terminal is one of those supported by the UNIX vir- - tual terminal protocol, the terminal number can be given + tual terminal protocol, the terminal number can be given as vt. Media copy strings which control an auxiliary printer con- nected to the terminal can be given as mc0: print the con- - tents of the screen, mc4: turn off the printer, and mc5: - turn on the printer. When the printer is on, all text - sent to the terminal will be sent to the printer. It is + tents of the screen, mc4: turn off the printer, and mc5: + turn on the printer. When the printer is on, all text + sent to the terminal will be sent to the printer. It is undefined whether the text is also displayed on the termi- nal screen when the printer is on. A variation mc5p takes one parameter, and leaves the printer on for as many char- - acters as the value of the parameter, then turns the - printer off. The parameter should not exceed 255. All + acters as the value of the parameter, then turns the + printer off. The parameter should not exceed 255. All text, including mc4, is transparently passed to the printer while an mc5p is in effect. Glitches and Braindamage - Hazeltine terminals, which do not allow `~' characters to + Hazeltine terminals, which do not allow `~' characters to be displayed should indicate hz. Terminals which ignore a line-feed immediately after an am wrap, such as the Concept and vt100, should indicate xenl. - If el is required to get rid of standout (instead of - merely writing normal text on top of it), xhp should be + If el is required to get rid of standout (instead of + merely writing normal text on top of it), xhp should be given. - Teleray terminals, where tabs turn all characters moved - over to blanks, should indicate xt (destructive tabs). - Note: the variable indicating this is now - `dest_tabs_magic_smso'; in older versions, it was tel- + Teleray terminals, where tabs turn all characters moved + over to blanks, should indicate xt (destructive tabs). + Note: the variable indicating this is now + `dest_tabs_magic_smso'; in older versions, it was tel- eray_glitch. This glitch is also taken to mean that it is - not possible to position the cursor on top of a ``magic + not possible to position the cursor on top of a ``magic cookie'', that to erase standout mode it is instead neces- sary to use delete and insert line. The ncurses implemen- tation ignores this glitch. - The Beehive Superbee, which is unable to correctly trans- - mit the escape or control C characters, has xsb, indicat- - ing that the f1 key is used for escape and f2 for control - C. (Only certain Superbees have this problem, depending - on the ROM.) Note that in older terminfo versions, this - capability was called `beehive_glitch'; it is now + The Beehive Superbee, which is unable to correctly trans- + mit the escape or control C characters, has xsb, indicat- + ing that the f1 key is used for escape and f2 for control + C. (Only certain Superbees have this problem, depending + on the ROM.) Note that in older terminfo versions, this + capability was called `beehive_glitch'; it is now `no_esc_ctl_c'. - Other specific terminal problems may be corrected by + Other specific terminal problems may be corrected by adding more capabilities of the form xx. Similar Terminals If there are two very similar terminals, one (the variant) - can be defined as being just like the other (the base) - with certain exceptions. In the definition of the vari- - ant, the string capability use can be given with the name - of the base terminal. The capabilities given before use - override those in the base type named by use. If there - are multiple use capabilities, they are merged in reverse - order. That is, the rightmost use reference is processed - first, then the one to its left, and so forth. Capabili- - ties given explicitly in the entry override those brought + can be defined as being just like the other (the base) + with certain exceptions. In the definition of the vari- + ant, the string capability use can be given with the name + of the base terminal. The capabilities given before use + override those in the base type named by use. If there + are multiple use capabilities, they are merged in reverse + order. That is, the rightmost use reference is processed + first, then the one to its left, and so forth. Capabili- + ties given explicitly in the entry override those brought in by use references. A capability can be canceled by placing xx@ to the left of - the use reference that imports it, where xx is the capa- + the use reference that imports it, where xx is the capa- bility. For example, the entry 2621-nl, smkx@, rmkx@, use=2621, - defines a 2621-nl that does not have the smkx or rmkx - capabilities, and hence does not turn on the function key - labels when in visual mode. This is useful for different + defines a 2621-nl that does not have the smkx or rmkx + capabilities, and hence does not turn on the function key + labels when in visual mode. This is useful for different modes for a terminal, or for different user preferences. Pitfalls of Long Entries - Long terminfo entries are unlikely to be a problem; to - date, no entry has even approached terminfo's 4096-byte + Long terminfo entries are unlikely to be a problem; to + date, no entry has even approached terminfo's 4096-byte string-table maximum. Unfortunately, the termcap transla- tions are much more strictly limited (to 1023 bytes), thus - termcap translations of long terminfo entries can cause + termcap translations of long terminfo entries can cause problems. - The man pages for 4.3BSD and older versions of tgetent() - instruct the user to allocate a 1024-byte buffer for the - termcap entry. The entry gets null-terminated by the + The man pages for 4.3BSD and older versions of tgetent() + instruct the user to allocate a 1024-byte buffer for the + termcap entry. The entry gets null-terminated by the termcap library, so that makes the maximum safe length for - a termcap entry 1k-1 (1023) bytes. Depending on what the - application and the termcap library being used does, and + a termcap entry 1k-1 (1023) bytes. Depending on what the + application and the termcap library being used does, and where in the termcap file the terminal type that tgetent() is searching for is, several bad things can happen. - Some termcap libraries print a warning message or exit if - they find an entry that's longer than 1023 bytes; others - do not; others truncate the entries to 1023 bytes. Some + Some termcap libraries print a warning message or exit if + they find an entry that's longer than 1023 bytes; others + do not; others truncate the entries to 1023 bytes. Some application programs allocate more than the recommended 1K for the termcap entry; others do not. Each termcap entry has two important sizes associated with it: before "tc" expansion, and after "tc" expansion. "tc" - is the capability that tacks on another termcap entry to - the end of the current one, to add on its capabilities. - If a termcap entry does not use the "tc" capability, then + is the capability that tacks on another termcap entry to + the end of the current one, to add on its capabilities. + If a termcap entry does not use the "tc" capability, then of course the two lengths are the same. - The "before tc expansion" length is the most important - one, because it affects more than just users of that par- - ticular terminal. This is the length of the entry as it + The "before tc expansion" length is the most important + one, because it affects more than just users of that par- + ticular terminal. This is the length of the entry as it exists in /etc/termcap, minus the backslash-newline pairs, which tgetent() strips out while reading it. Some termcap - libraries strip off the final newline, too (GNU termcap + libraries strip off the final newline, too (GNU termcap does not). Now suppose: - * a termcap entry before expansion is more than 1023 + * a termcap entry before expansion is more than 1023 bytes long, * and the application has only allocated a 1k buffer, - * and the termcap library (like the one in BSD/OS 1.1 - and GNU) reads the whole entry into the buffer, no - matter what its length, to see if it's the entry it + * and the termcap library (like the one in BSD/OS 1.1 + and GNU) reads the whole entry into the buffer, no + matter what its length, to see if it is the entry it wants, - * and tgetent() is searching for a terminal type that + * and tgetent() is searching for a terminal type that either is the long entry, appears in the termcap file - after the long entry, or does not appear in the file - at all (so that tgetent() has to search the whole + after the long entry, or does not appear in the file + at all (so that tgetent() has to search the whole termcap file). - Then tgetent() will overwrite memory, perhaps its stack, - and probably core dump the program. Programs like telnet - are particularly vulnerable; modern telnets pass along - values like the terminal type automatically. The results - are almost as undesirable with a termcap library, like - SunOS 4.1.3 and Ultrix 4.4, that prints warning messages - when it reads an overly long termcap entry. If a termcap - library truncates long entries, like OSF/1 3.0, it is - immune to dying here but will return incorrect data for + Then tgetent() will overwrite memory, perhaps its stack, + and probably core dump the program. Programs like telnet + are particularly vulnerable; modern telnets pass along + values like the terminal type automatically. The results + are almost as undesirable with a termcap library, like + SunOS 4.1.3 and Ultrix 4.4, that prints warning messages + when it reads an overly long termcap entry. If a termcap + library truncates long entries, like OSF/1 3.0, it is + immune to dying here but will return incorrect data for the terminal. The "after tc expansion" length will have a similar effect to the above, but only for people who actually set TERM to - that terminal type, since tgetent() only does "tc" expan- - sion once it's found the terminal type it was looking for, - not while searching. + that terminal type, since tgetent() only does "tc" expan- + sion once it is found the terminal type it was looking + for, not while searching. In summary, a termcap entry that is longer than 1023 bytes - can cause, on various combinations of termcap libraries - and applications, a core dump, warnings, or incorrect - operation. If it's too long even before "tc" expansion, + can cause, on various combinations of termcap libraries + and applications, a core dump, warnings, or incorrect + operation. If it is too long even before "tc" expansion, it will have this effect even for users of some other ter- - minal types and users whose TERM variable does not have a + minal types and users whose TERM variable does not have a termcap entry. When in -C (translate to termcap) mode, the ncurses imple- mentation of tic(1m) issues warning messages when the pre- - tc length of a termcap translation is too long. The -c - (check) option also checks resolved (after tc expansion) + tc length of a termcap translation is too long. The -c + (check) option also checks resolved (after tc expansion) lengths. Binary Compatibility - It is not wise to count on portability of binary terminfo - entries between commercial UNIX versions. The problem is - that there are at least two versions of terminfo (under + It is not wise to count on portability of binary terminfo + entries between commercial UNIX versions. The problem is + that there are at least two versions of terminfo (under HP-UX and AIX) which diverged from System V terminfo after - SVr1, and have added extension capabilities to the string - table that (in the binary format) collide with System V + SVr1, and have added extension capabilities to the string + table that (in the binary format) collide with System V and XSI Curses extensions.

    EXTENSIONS

    -       Some SVr4 curses  implementations,  and  all  previous  to
    -       SVr4,  do not interpret the %A and %O operators in parame-
    +       Some  SVr4  curses  implementations,  and  all previous to
    +       SVr4, do not interpret the %A and %O operators in  parame-
            ter strings.
     
    -       SVr4/XPG4 do not specify whether  msgr  licenses  movement
    -       while  in an alternate-character-set mode (such modes may,
    -       among other things, map CR and NL to  characters  that  do
    -       not  trigger  local  motions).  The ncurses implementation
    -       ignores msgr in ALTCHARSET mode.  This raises  the  possi-
    -       bility  that  an  XPG4  implementation making the opposite
    -       interpretation may need terminfo entries made for  ncurses
    +       SVr4/XPG4  do  not  specify whether msgr licenses movement
    +       while in an alternate-character-set mode (such modes  may,
    +       among  other  things,  map CR and NL to characters that do
    +       not trigger local motions).   The  ncurses  implementation
    +       ignores  msgr  in ALTCHARSET mode.  This raises the possi-
    +       bility that an XPG4  implementation  making  the  opposite
    +       interpretation  may need terminfo entries made for ncurses
            to have msgr turned off.
     
    -       The  ncurses  library handles insert-character and insert-
    +       The ncurses library handles insert-character  and  insert-
            character modes in a slightly non-standard way to get bet-
    -       ter  update  efficiency.   See the Insert/Delete Character
    +       ter update efficiency.  See  the  Insert/Delete  Character
            subsection above.
     
    -       The  parameter  substitutions  for  set_clock   and   dis-
    -       play_clock  are  not  documented in SVr4 or the XSI Curses
    +       The   parameter   substitutions  for  set_clock  and  dis-
    +       play_clock are not documented in SVr4 or  the  XSI  Curses
            standard.  They are deduced from the documentation for the
            AT&T 505 terminal.
     
    -       Be  careful  assigning  the kmous capability.  The ncurses
    -       wants to interpret it as KEY_MOUSE, for use  by  terminals
    -       and  emulators  like  xterm that can return mouse-tracking
    +       Be careful assigning the kmous  capability.   The  ncurses
    +       wants  to  interpret it as KEY_MOUSE, for use by terminals
    +       and emulators like xterm that  can  return  mouse-tracking
            information in the keyboard-input stream.
     
    -       Different commercial ports of terminfo and curses  support
    -       different  subsets of the XSI Curses standard and (in some
    +       Different  commercial ports of terminfo and curses support
    +       different subsets of the XSI Curses standard and (in  some
            cases) different extension sets.  Here is a summary, accu-
            rate as of October 1995:
     
            SVR4, Solaris, ncurses -- These support all SVr4 capabili-
            ties.
     
    -       SGI --  Supports  the  SVr4  set,  adds  one  undocumented
    +       SGI  --  Supports  the  SVr4  set,  adds  one undocumented
            extended string capability (set_pglen).
     
    -       SVr1,  Ultrix -- These support a restricted subset of ter-
    -       minfo capabilities.  The booleans end with  xon_xoff;  the
    -       numerics  with  width_status_line;  and  the  strings with
    +       SVr1, Ultrix -- These support a restricted subset of  ter-
    +       minfo  capabilities.   The booleans end with xon_xoff; the
    +       numerics with  width_status_line;  and  the  strings  with
            prtr_non.
     
    -       HP/UX -- Supports  the  SVr1  subset,  plus  the  SVr[234]
    +       HP/UX  --  Supports  the  SVr1  subset,  plus the SVr[234]
            numerics num_labels, label_height, label_width, plus func-
    -       tion keys 11 through 63,  plus  plab_norm,  label_on,  and
    +       tion  keys  11  through  63, plus plab_norm, label_on, and
            label_off, plus some incompatible extensions in the string
            table.
     
    -       AIX -- Supports the SVr1 subset,  plus  function  keys  11
    -       through  63,  plus  a  number of incompatible string table
    +       AIX  --  Supports  the  SVr1 subset, plus function keys 11
    +       through 63, plus a number  of  incompatible  string  table
            extensions.
     
    -       OSF -- Supports both the SVr4 set and the AIX  extensions.
    +       OSF  -- Supports both the SVr4 set and the AIX extensions.
     
     
     
    @@ -2356,7 +2358,7 @@

    AUTHORS

    -       Zeyd M. Ben-Halim, Eric  S.  Raymond,  Thomas  E.  Dickey.
    +       Zeyd  M.  Ben-Halim,  Eric  S.  Raymond, Thomas E. Dickey.
            Based on pcurses by Pavel Curtis.
     
     
    diff --git a/doc/html/man/tic.1m.html b/doc/html/man/tic.1m.html
    index 5dd84918..059048d3 100644
    --- a/doc/html/man/tic.1m.html
    +++ b/doc/html/man/tic.1m.html
    @@ -309,7 +309,7 @@
            infocmp(1m),    captoinfo(1m),   infotocap(1m),   toe(1m),
            curses(3x), terminfo(5).
     
    -       This describes ncurses version 5.6 (patch 20070303).
    +       This describes ncurses version 5.6 (patch 20080621).
     
     
     
    diff --git a/doc/html/man/toe.1m.html b/doc/html/man/toe.1m.html
    index 278d1248..02178688 100644
    --- a/doc/html/man/toe.1m.html
    +++ b/doc/html/man/toe.1m.html
    @@ -1,7 +1,7 @@
     
     
     
     
    @@ -72,22 +72,24 @@
                   one that it finds.
     
            -u file
    -              says to issue a report on dependencies in the given
    -              file. This report  condenses  the  `use'  relation:
    -              each  line consists of the primary name of a termi-
    -              nal that has use capabilities, followed by a colon,
    -              followed  by the whitespace-separated primary names
    -              of all terminals which occur in those use capabili-
    -              ties, followed by a newline
    +              says  to  write  a  report  to the standard output,
    +              listing dependencies in the given  terminfo/termcap
    +              source  file.  The report condenses the `use' rela-
    +              tion: each line consists of the primary name  of  a
    +              terminal  that  has use capabilities, followed by a
    +              colon, followed by the whitespace-separated primary
    +              names  of  all  terminals  which occur in those use
    +              capabilities, followed by a newline
     
            -U file
    -              says  to  issue a report on reverse dependencies in
    -              the given file.  This  report  reverses  the  `use'
    -              relation: each line consists of the primary name of
    -              a terminal that occurs in  use  capabilities,  fol-
    -              lowed  by a colon, followed by the whitespace-sepa-
    -              rated primary names of all terminals  which  depend
    -              on it, followed by a newline.
    +              says to write a  report  to  the  standard  output,
    +              listing  reverse  dependencies  in  the  given ter-
    +              minfo/termcap source file.  The report reverses the
    +              `use'  relation:  each line consists of the primary
    +              name of a terminal that occurs in use capabilities,
    +              followed  by  a  colon, followed by the whitespace-
    +              separated primary  names  of  all  terminals  which
    +              depend on it, followed by a newline.
     
            -vn    specifies that (verbose) output be written to stan-
                   dard error, showing toe's progress.   The  optional
    @@ -109,7 +111,7 @@
            tic(1m),    infocmp(1m),   captoinfo(1m),   infotocap(1m),
            curses(3x), terminfo(5).
     
    -       This describes ncurses version 5.6 (patch 20070303).
    +       This describes ncurses version 5.6 (patch 20080621).
     
     
     
    diff --git a/doc/html/man/tput.1.html b/doc/html/man/tput.1.html
    index 159df350..02b8b1b0 100644
    --- a/doc/html/man/tput.1.html
    +++ b/doc/html/man/tput.1.html
    @@ -328,7 +328,7 @@
     

    SEE ALSO

            clear(1), stty(1), tabs(1), terminfo(5).
     
    -       This describes ncurses version 5.6 (patch 20070303).
    +       This describes ncurses version 5.6 (patch 20080621).
     
     
     
    diff --git a/doc/html/man/tset.1.html b/doc/html/man/tset.1.html
    index c41e2240..59a984da 100644
    --- a/doc/html/man/tset.1.html
    +++ b/doc/html/man/tset.1.html
    @@ -318,7 +318,7 @@
            csh(1), sh(1), stty(1),  curs_terminfo(3x),  tty(4),  ter-
            minfo(5), ttys(5), environ(7)
     
    -       This describes ncurses version 5.6 (patch 20070303).
    +       This describes ncurses version 5.6 (patch 20080621).
     
     
     
    diff --git a/man/form_driver.3x b/man/form_driver.3x
    index 85b1df82..4b0576f0 100644
    --- a/man/form_driver.3x
    +++ b/man/form_driver.3x
    @@ -1,5 +1,5 @@
     .\"***************************************************************************
    -.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
    +.\" Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
     .\"                                                                          *
     .\" Permission is hereby granted, free of charge, to any person obtaining a  *
     .\" copy of this software and associated documentation files (the            *
    @@ -26,7 +26,7 @@
     .\" authorization.                                                           *
     .\"***************************************************************************
     .\"
    -.\" $Id: form_driver.3x,v 1.15 2007/06/02 22:56:49 tom Exp $
    +.\" $Id: form_driver.3x,v 1.16 2008/06/21 21:55:39 tom Exp $
     .TH form_driver 3X ""
     .SH NAME
     \fBform_driver\fR - command-processing loop of the form system
    @@ -37,8 +37,21 @@ int form_driver(FORM *form, int c);
     .br
     .SH DESCRIPTION
     Once a form has been posted (displayed), you should funnel input events to it
    -through \fBform_driver\fR.  This routine has two major input cases; either
    -the input is a form navigation request or it is a printable ASCII character.
    +through \fBform_driver\fR.  This routine has three major input cases:
    +.TP 3
    +-
    +The input is a form navigation request.
    +Navigation request codes are constants defined in \fB\fP,
    +which are distinct from the key- and character codes returned by \fBwgetch\fP.
    +.TP 3
    +-
    +The input is a printable character.
    +Printable characters (which must be positive, less than 256) are
    +checked according to the program's locale settings.
    +.TP 3
    +-
    +The input is the KEY_MOUSE special key associated with an mouse event.
    +.PP
     The form driver requests are as follows:
     .TP 5
     REQ_NEXT_PAGE
    @@ -218,7 +231,7 @@ Display next field choice.
     REQ_PREV_CHOICE
     Display previous field choice.
     .PP
    -If the second argument is a printable ASCII character, the driver places it
    +If the second argument is a printable character, the driver places it
     in the current position in the current field.  If it is one of the forms
     requests listed above, that request is executed.
     .SS MOUSE HANDLING
    @@ -269,11 +282,11 @@ If a translation
     into a request was done, \fBform_driver\fR returns the result of this request.
     .RE
     .PP
    -If you clicked outside the user window or the mouse event couldn't be translated
    +If you clicked outside the user window or the mouse event could not be translated
     into a form request an \fBE_REQUEST_DENIED\fR is returned.
     .SS APPLICATION-DEFINED COMMANDS
     .PP
    -If the second argument is neither printable ASCII nor one of the above
    +If the second argument is neither printable nor one of the above
     pre-defined form requests, the driver assumes it is an application-specific
     command and returns \fBE_UNKNOWN_COMMAND\fR.  Application-defined commands
     should be defined relative to \fBMAX_COMMAND\fR, the maximum value of these
    @@ -306,7 +319,9 @@ System error occurred (see \fBerrno\fR).
     The form driver code saw an unknown request code.
     .
     .SH SEE ALSO
    -\fBcurses\fR(3X), \fBform\fR(3X).
    +\fBcurses\fR(3X),
    +\fBform\fR(3X),
    +\fBwgetch\fR(3X).
     .SH NOTES
     The header file \fB\fR automatically includes the header files
     \fB\fR.
    diff --git a/man/menu_driver.3x b/man/menu_driver.3x
    index bf7d8770..5366040c 100644
    --- a/man/menu_driver.3x
    +++ b/man/menu_driver.3x
    @@ -1,5 +1,5 @@
     .\"***************************************************************************
    -.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
    +.\" Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
     .\"                                                                          *
     .\" Permission is hereby granted, free of charge, to any person obtaining a  *
     .\" copy of this software and associated documentation files (the            *
    @@ -26,7 +26,7 @@
     .\" authorization.                                                           *
     .\"***************************************************************************
     .\"
    -.\" $Id: menu_driver.3x,v 1.14 2007/06/02 22:50:09 tom Exp $
    +.\" $Id: menu_driver.3x,v 1.15 2008/06/21 21:55:30 tom Exp $
     .TH menu_driver 3X ""
     .SH NAME
     \fBmenu_driver\fR - command-processing loop of the menu system
    @@ -37,9 +37,21 @@ int menu_driver(MENU *menu, int c);
     .br
     .SH DESCRIPTION
     Once a menu has been posted (displayed), you should funnel input events to it
    -through \fBmenu_driver\fR.  This routine has three major input cases; either
    -the input is a menu navigation request, it is a printable ASCII character or it
    -is the KEY_MOUSE special key associated with an mouse event.
    +through \fBmenu_driver\fR.  This routine has three major input cases:
    +.TP 3
    +-
    +The input is a form navigation request.
    +Navigation request codes are constants defined in \fB\fP,
    +which are distinct from the key- and character codes returned by \fBwgetch\fP.
    +.TP 3
    +-
    +The input is a printable character.
    +Printable characters (which must be positive, less than 256) are
    +checked according to the program's locale settings.
    +.TP 3
    +-
    +The input is the KEY_MOUSE special key associated with an mouse event.
    +.PP
     The menu driver requests are as follows:
     .TP 5
     REQ_LEFT_ITEM
    @@ -93,7 +105,7 @@ Move to the next item matching the pattern match.
     REQ_PREV_MATCH
     Move to the previous item matching the pattern match.
     .PP
    -If the second argument is a printable ASCII character, the code appends
    +If the second argument is a printable character, the code appends
     it to the pattern buffer and attempts to move to the next item matching
     the new pattern.  If there is no such match, \fBmenu_driver\fR returns
     \fBE_NO_MATCH\fR and deletes the appended character from the buffer.
    @@ -147,11 +159,11 @@ If a translation
     into a request was done, \fBmenu_driver\fR returns the result of this request.
     .RE
     .PP
    -If you clicked outside the user window or the mouse event couldn't be translated
    +If you clicked outside the user window or the mouse event could not be translated
     into a menu request an \fBE_REQUEST_DENIED\fR is returned.
     .SS APPLICATION-DEFINED COMMANDS
     .PP
    -If the second argument is neither printable ASCII nor one of the above
    +If the second argument is neither printable nor one of the above
     pre-defined menu requests or KEY_MOUSE, the drive assumes it is an application-specific
     command and returns \fBE_UNKNOWN_COMMAND\fR.  Application-defined commands
     should be defined relative to \fBMAX_COMMAND\fR, the maximum value of these
    @@ -183,7 +195,9 @@ Character failed to match.
     .B E_REQUEST_DENIED
     The menu driver could not process the request.
     .SH SEE ALSO
    -\fBcurses\fR(3X), \fBmenu\fR(3X).
    +\fBcurses\fR(3X),
    +\fBmenu\fR(3X),
    +\fBwgetch\fR(3X).
     .SH NOTES
     The header file \fB\fR automatically includes the header files
     \fB\fR.
    diff --git a/man/menu_pattern.3x b/man/menu_pattern.3x
    index 50dee87a..3cde165b 100644
    --- a/man/menu_pattern.3x
    +++ b/man/menu_pattern.3x
    @@ -1,5 +1,5 @@
     .\"***************************************************************************
    -.\" Copyright (c) 1998-2003,2006 Free Software Foundation, Inc.              *
    +.\" Copyright (c) 1998-2006,2008 Free Software Foundation, Inc.              *
     .\"                                                                          *
     .\" Permission is hereby granted, free of charge, to any person obtaining a  *
     .\" copy of this software and associated documentation files (the            *
    @@ -26,7 +26,7 @@
     .\" authorization.                                                           *
     .\"***************************************************************************
     .\"
    -.\" $Id: menu_pattern.3x,v 1.10 2006/11/04 18:25:24 tom Exp $
    +.\" $Id: menu_pattern.3x,v 1.11 2008/06/21 21:58:20 tom Exp $
     .TH menu_pattern 3X ""
     .SH NAME
     \fBmenu_pattern\fR - get and set a menu's pattern buffer
    @@ -39,7 +39,7 @@ char *menu_pattern(const MENU *menu);
     .br
     .SH DESCRIPTION
     Every menu has an associated pattern match buffer.  As input events that are
    -printable ASCII characters come in, they are appended to this match buffer
    +printable characters come in, they are appended to this match buffer
     and tested for a match, as described in \fBmenu_driver\fR(3X).
     .PP
     The function \fBset_menu_pattern\fR sets the pattern buffer for the given menu
    diff --git a/ncurses/base/lib_freeall.c b/ncurses/base/lib_freeall.c
    index 8ec3f279..b06123d2 100644
    --- a/ncurses/base/lib_freeall.c
    +++ b/ncurses/base/lib_freeall.c
    @@ -40,7 +40,7 @@
     extern int malloc_errfd;	/* FIXME */
     #endif
     
    -MODULE_ID("$Id: lib_freeall.c,v 1.47 2008/06/07 13:58:29 tom Exp $")
    +MODULE_ID("$Id: lib_freeall.c,v 1.49 2008/06/21 21:26:33 tom Exp $")
     
     /*
      * Free all ncurses data.  This is used for testing only (there's no practical
    @@ -98,18 +98,11 @@ _nc_freeall(void)
         if (cur_term != 0)
     	del_curterm(cur_term);
     
    -#if USE_WIDEC_SUPPORT
    -    FreeIfNeeded(_nc_wacs);
    -#endif
         (void) _nc_printf_string(0, empty_va);
     #ifdef TRACE
         (void) _nc_trace_buf(-1, 0);
     #endif
     
    -#if BROKEN_LINKER || USE_REENTRANT
    -    FreeIfNeeded(_nc_prescreen.real_acs_map);
    -#endif
    -
         _nc_leaks_tinfo();
     
     #if HAVE_LIBDBMALLOC
    diff --git a/ncurses/base/lib_newterm.c b/ncurses/base/lib_newterm.c
    index 29bf9a74..3e6034c2 100644
    --- a/ncurses/base/lib_newterm.c
    +++ b/ncurses/base/lib_newterm.c
    @@ -48,7 +48,7 @@
     #include 		/* clear_screen, cup & friends, cur_term */
     #include 
     
    -MODULE_ID("$Id: lib_newterm.c,v 1.70 2008/06/07 14:00:23 tom Exp $")
    +MODULE_ID("$Id: lib_newterm.c,v 1.71 2008/06/21 20:55:11 tom Exp $")
     
     #ifndef ONLCR			/* Allows compilation under the QNX 4.2 OS */
     #define ONLCR 0
    @@ -125,11 +125,16 @@ newterm(NCURSES_CONST char *name, FILE *ofp, FILE *ifp)
         int errret;
         SCREEN *current;
         SCREEN *result = 0;
    +    TERMINAL *its_term;
     
         START_TRACE();
         T((T_CALLED("newterm(\"%s\",%p,%p)"), name, ofp, ifp));
     
         _nc_lock_global(curses);
    +
    +    current = SP;
    +    its_term = (SP ? SP->_term : 0);
    +
         /* this loads the capability entry, then sets LINES and COLS */
         if (setupterm(name, fileno(ofp), &errret) != ERR) {
     	int slk_format = _nc_globals.slk_format;
    @@ -138,7 +143,6 @@ newterm(NCURSES_CONST char *name, FILE *ofp, FILE *ifp)
     	 * This actually allocates the screen structure, and saves the original
     	 * terminal settings.
     	 */
    -	current = SP;
     	_nc_set_screen(0);
     
     	/* allow user to set maximum escape delay from the environment */
    @@ -154,6 +158,18 @@ newterm(NCURSES_CONST char *name, FILE *ofp, FILE *ifp)
     	    _nc_set_screen(current);
     	    result = 0;
     	} else {
    +	    /*
    +	     * In setupterm() we did a set_curterm(), but it was before we set
    +	     * SP.  So the "current" screen's terminal pointer was overwritten
    +	     * with a different terminal.  Later, in _nc_setupscreen(), we set
    +	     * SP and the terminal pointer in the new screen.
    +	     *
    +	     * Restore the terminal-pointer for the pre-existing screen, if
    +	     * any.
    +	     */
    +	    if (current)
    +		current->_term = its_term;
    +
     	    /* if the terminal type has real soft labels, set those up */
     	    if (slk_format && num_labels > 0 && SLK_STDFMT(slk_format))
     		_nc_slk_initialize(stdscr, COLS);
    diff --git a/ncurses/base/lib_restart.c b/ncurses/base/lib_restart.c
    index 9742ff62..da770d4e 100644
    --- a/ncurses/base/lib_restart.c
    +++ b/ncurses/base/lib_restart.c
    @@ -36,8 +36,6 @@
      * Terminfo-only terminal setup routines:
      *
      *		int restartterm(const char *, int, int *)
    - *		TERMINAL *set_curterm(TERMINAL *)
    - *		int del_curterm(TERMINAL *)
      */
     
     #include 
    @@ -48,7 +46,7 @@
     
     #include 		/* lines, columns, cur_term */
     
    -MODULE_ID("$Id: lib_restart.c,v 1.9 2008/05/03 22:43:52 tom Exp $")
    +MODULE_ID("$Id: lib_restart.c,v 1.10 2008/06/21 17:31:22 tom Exp $")
     
     NCURSES_EXPORT(int)
     restartterm(NCURSES_CONST char *termp, int filenum, int *errret)
    diff --git a/ncurses/base/lib_set_term.c b/ncurses/base/lib_set_term.c
    index 24f90d1b..46779e08 100644
    --- a/ncurses/base/lib_set_term.c
    +++ b/ncurses/base/lib_set_term.c
    @@ -44,7 +44,7 @@
     #include 		/* cur_term */
     #include 
     
    -MODULE_ID("$Id: lib_set_term.c,v 1.112 2008/06/07 22:29:07 tom Exp $")
    +MODULE_ID("$Id: lib_set_term.c,v 1.113 2008/06/21 19:00:09 tom Exp $")
     
     NCURSES_EXPORT(SCREEN *)
     set_term(SCREEN *screenp)
    @@ -164,11 +164,6 @@ delscreen(SCREEN *sp)
     	FreeIfNeeded(sp->_acs_map);
     	FreeIfNeeded(sp->_screen_acs_map);
     
    -#if 0
    -	/* FIXME - this should be a copy of the struct, not a pointer */
    -	del_curterm(sp->_term);
    -#endif
    -
     	/*
     	 * If the associated output stream has been closed, we can discard the
     	 * set-buffer.  Limit the error check to EBADF, since fflush may fail
    @@ -181,6 +176,7 @@ delscreen(SCREEN *sp)
     	    free(sp->_setbuf);
     	}
     
    +	del_curterm(sp->_term);
     	free(sp);
     
     	/*
    diff --git a/ncurses/llib-lncurses b/ncurses/llib-lncurses
    index bca3288b..485014d9 100644
    --- a/ncurses/llib-lncurses
    +++ b/ncurses/llib-lncurses
    @@ -27,7 +27,7 @@
      ****************************************************************************/
     
     /****************************************************************************
    - *  Author: Thomas E. Dickey 1996-2007                                      *
    + *  Author: Thomas E. Dickey 1996-2008                                      *
      ****************************************************************************/
     /* LINTLIBRARY */
     
    @@ -1138,6 +1138,11 @@ NCURSES_BOOL mouse_trafo(
     #undef ESCDELAY
     int	ESCDELAY;
     
    +#undef set_escdelay
    +int	set_escdelay(
    +		int	value)
    +		{ return(*(int *)0); }
    +
     #undef _nc_wgetch
     int	_nc_wgetch(
     		WINDOW	*win, 
    @@ -1395,6 +1400,11 @@ WINDOW	*_nc_makenew(
     		int	flags)
     		{ return(*(WINDOW **)0); }
     
    +#undef _nc_screen_of
    +SCREEN	*_nc_screen_of(
    +		WINDOW	*win)
    +		{ return(*(SCREEN **)0); }
    +
     /* ./base/lib_nl.c */
     
     #undef nl
    @@ -1823,6 +1833,12 @@ void	_tracedump(
     
     /* ./trace/lib_tracemse.c */
     
    +#undef _nc_tracemouse
    +char	*_nc_tracemouse(
    +		SCREEN	*sp, 
    +		MEVENT const *ep)
    +		{ return(*(char **)0); }
    +
     #undef _tracemouse
     char	*_tracemouse(
     		MEVENT const *ep)
    @@ -1840,9 +1856,16 @@ void	_nc_signal_handler(
     /* ./base/lib_ungetch.c */
     
     #undef _nc_fifo_dump
    -void	_nc_fifo_dump(void)
    +void	_nc_fifo_dump(
    +		SCREEN	*sp)
     		{ /* void */ }
     
    +#undef _nc_ungetch
    +int	_nc_ungetch(
    +		SCREEN	*sp, 
    +		int	ch)
    +		{ return(*(int *)0); }
    +
     #undef ungetch
     int	ungetch(
     		int	ch)
    @@ -2103,6 +2126,24 @@ void	_nc_trace_xnames(
     		TERMTYPE *tp)
     		{ /* void */ }
     
    +/* ./tinfo/use_screen.c */
    +
    +#undef use_screen
    +int	use_screen(
    +		SCREEN	*screen, 
    +		NCURSES_SCREEN_CB func, 
    +		void	*data)
    +		{ return(*(int *)0); }
    +
    +/* ./base/use_window.c */
    +
    +#undef use_window
    +int	use_window(
    +		WINDOW	*win, 
    +		NCURSES_WINDOW_CB func, 
    +		void	*data)
    +		{ return(*(int *)0); }
    +
     /* ./base/wresize.c */
     
     #undef wresize
    @@ -2345,7 +2386,8 @@ const struct tinfo_fkeys _nc_tinfo_fkeys[] = {0};
     #endif
     
     #undef _nc_init_keytry
    -void	_nc_init_keytry(void)
    +void	_nc_init_keytry(
    +		SCREEN	*sp)
     		{ /* void */ }
     
     /* ./tinfo/lib_acs.c */
    @@ -2440,6 +2482,12 @@ int	flushinp(void)
     
     struct kn { short offset; int code; };
     
    +#undef _nc_keyname
    +char	*_nc_keyname(
    +		SCREEN	*sp, 
    +		int	c)
    +		{ return(*(char **)0); }
    +
     #undef keyname
     char	*keyname(
     		int	c)
    @@ -2526,6 +2574,7 @@ int	has_key(
     
     #undef _nc_keypad
     int	_nc_keypad(
    +		SCREEN	*sp, 
     		NCURSES_BOOL flag)
     		{ return(*(int *)0); }
     
    @@ -2576,9 +2625,14 @@ int	COLS;
     #undef TABSIZE
     int	TABSIZE;
     
    +#undef set_tabsize
    +int	set_tabsize(
    +		int	value)
    +		{ return(*(int *)0); }
    +
     #undef _nc_handle_sigwinch
     int	_nc_handle_sigwinch(
    -		int	update)
    +		SCREEN	*sp)
     		{ return(*(int *)0); }
     
     #undef use_env
    @@ -2588,12 +2642,14 @@ void	use_env(
     
     #undef _nc_get_screensize
     void	_nc_get_screensize(
    +		SCREEN	*sp, 
     		int	*linep, 
     		int	*colp)
     		{ /* void */ }
     
     #undef _nc_update_screensize
    -void	_nc_update_screensize(void)
    +void	_nc_update_screensize(
    +		SCREEN	*sp)
     		{ /* void */ }
     
     #undef _nc_get_locale
    @@ -2867,6 +2923,12 @@ char	*_nc_tracebits(void)
     
     /* ./trace/lib_tracechr.c */
     
    +#undef _nc_tracechar
    +char	*_nc_tracechar(
    +		SCREEN	*sp, 
    +		int	ch)
    +		{ return(*(char **)0); }
    +
     #undef _tracechar
     char	*_tracechar(
     		int	ch)
    @@ -2912,6 +2974,7 @@ int	resetty(void)
     
     #undef _nc_timed_wait
     int	_nc_timed_wait(
    +		SCREEN	*sp, 
     		int	mode, 
     		int	milliseconds, 
     		int	*timeleft)
    @@ -3073,9 +3136,15 @@ char	*_nc_trim_sgr0(
     
     /* ./unctrl.c */
     
    +#undef _nc_unctrl
    +char	*_nc_unctrl(
    +		SCREEN	*sp, 
    +		chtype	ch)
    +		{ return(*(char **)0); }
    +
     #undef unctrl
     char	*unctrl(
    -		 chtype	ch)
    +		chtype	ch)
     		{ return(*(char **)0); }
     
     /* ./trace/visbuf.c */
    diff --git a/ncurses/llib-lncursesw b/ncurses/llib-lncursesw
    index 12522e12..50f57145 100644
    --- a/ncurses/llib-lncursesw
    +++ b/ncurses/llib-lncursesw
    @@ -27,7 +27,7 @@
      ****************************************************************************/
     
     /****************************************************************************
    - *  Author: Thomas E. Dickey 2001-2006                                      *
    + *  Author: Thomas E. Dickey 2001-2008                                      *
      ****************************************************************************/
     /* LINTLIBRARY */
     
    @@ -1646,6 +1646,11 @@ NCURSES_BOOL mouse_trafo(
     #undef ESCDELAY
     int	ESCDELAY;
     
    +#undef set_escdelay
    +int	set_escdelay(
    +		int	value)
    +		{ return(*(int *)0); }
    +
     #undef _nc_wgetch
     int	_nc_wgetch(
     		WINDOW	*win, 
    @@ -1903,6 +1908,11 @@ WINDOW	*_nc_makenew(
     		int	flags)
     		{ return(*(WINDOW **)0); }
     
    +#undef _nc_screen_of
    +SCREEN	*_nc_screen_of(
    +		WINDOW	*win)
    +		{ return(*(SCREEN **)0); }
    +
     /* ./base/lib_nl.c */
     
     #undef nl
    @@ -2333,6 +2343,12 @@ void	_tracedump(
     
     /* ./trace/lib_tracemse.c */
     
    +#undef _nc_tracemouse
    +char	*_nc_tracemouse(
    +		SCREEN	*sp, 
    +		MEVENT const *ep)
    +		{ return(*(char **)0); }
    +
     #undef _tracemouse
     char	*_tracemouse(
     		MEVENT const *ep)
    @@ -2350,9 +2366,16 @@ void	_nc_signal_handler(
     /* ./base/lib_ungetch.c */
     
     #undef _nc_fifo_dump
    -void	_nc_fifo_dump(void)
    +void	_nc_fifo_dump(
    +		SCREEN	*sp)
     		{ /* void */ }
     
    +#undef _nc_ungetch
    +int	_nc_ungetch(
    +		SCREEN	*sp, 
    +		int	ch)
    +		{ return(*(int *)0); }
    +
     #undef ungetch
     int	ungetch(
     		int	ch)
    @@ -2849,6 +2872,24 @@ void	_nc_trace_xnames(
     		TERMTYPE *tp)
     		{ /* void */ }
     
    +/* ./tinfo/use_screen.c */
    +
    +#undef use_screen
    +int	use_screen(
    +		SCREEN	*screen, 
    +		NCURSES_SCREEN_CB func, 
    +		void	*data)
    +		{ return(*(int *)0); }
    +
    +/* ./base/use_window.c */
    +
    +#undef use_window
    +int	use_window(
    +		WINDOW	*win, 
    +		NCURSES_WINDOW_CB func, 
    +		void	*data)
    +		{ return(*(int *)0); }
    +
     /* ./base/wresize.c */
     
     #undef wresize
    @@ -3091,7 +3132,8 @@ const struct tinfo_fkeys _nc_tinfo_fkeys[] = {0};
     #endif
     
     #undef _nc_init_keytry
    -void	_nc_init_keytry(void)
    +void	_nc_init_keytry(
    +		SCREEN	*sp)
     		{ /* void */ }
     
     /* ./tinfo/lib_acs.c */
    @@ -3186,6 +3228,12 @@ int	flushinp(void)
     
     struct kn { short offset; int code; };
     
    +#undef _nc_keyname
    +char	*_nc_keyname(
    +		SCREEN	*sp, 
    +		int	c)
    +		{ return(*(char **)0); }
    +
     #undef keyname
     char	*keyname(
     		int	c)
    @@ -3272,6 +3320,7 @@ int	has_key(
     
     #undef _nc_keypad
     int	_nc_keypad(
    +		SCREEN	*sp, 
     		NCURSES_BOOL flag)
     		{ return(*(int *)0); }
     
    @@ -3322,9 +3371,14 @@ int	COLS;
     #undef TABSIZE
     int	TABSIZE;
     
    +#undef set_tabsize
    +int	set_tabsize(
    +		int	value)
    +		{ return(*(int *)0); }
    +
     #undef _nc_handle_sigwinch
     int	_nc_handle_sigwinch(
    -		int	update)
    +		SCREEN	*sp)
     		{ return(*(int *)0); }
     
     #undef use_env
    @@ -3334,12 +3388,14 @@ void	use_env(
     
     #undef _nc_get_screensize
     void	_nc_get_screensize(
    +		SCREEN	*sp, 
     		int	*linep, 
     		int	*colp)
     		{ /* void */ }
     
     #undef _nc_update_screensize
    -void	_nc_update_screensize(void)
    +void	_nc_update_screensize(
    +		SCREEN	*sp)
     		{ /* void */ }
     
     #undef _nc_get_locale
    @@ -3624,6 +3680,12 @@ char	*_nc_tracebits(void)
     
     /* ./trace/lib_tracechr.c */
     
    +#undef _nc_tracechar
    +char	*_nc_tracechar(
    +		SCREEN	*sp, 
    +		int	ch)
    +		{ return(*(char **)0); }
    +
     #undef _tracechar
     char	*_tracechar(
     		int	ch)
    @@ -3669,6 +3731,7 @@ int	resetty(void)
     
     #undef _nc_timed_wait
     int	_nc_timed_wait(
    +		SCREEN	*sp, 
     		int	mode, 
     		int	milliseconds, 
     		int	*timeleft)
    @@ -3830,9 +3893,15 @@ char	*_nc_trim_sgr0(
     
     /* ./unctrl.c */
     
    +#undef _nc_unctrl
    +char	*_nc_unctrl(
    +		SCREEN	*sp, 
    +		chtype	ch)
    +		{ return(*(char **)0); }
    +
     #undef unctrl
     char	*unctrl(
    -		 chtype	ch)
    +		chtype	ch)
     		{ return(*(char **)0); }
     
     /* ./trace/visbuf.c */
    diff --git a/ncurses/tinfo/entries.c b/ncurses/tinfo/entries.c
    index 8b63f0d8..05f45ef0 100644
    --- a/ncurses/tinfo/entries.c
    +++ b/ncurses/tinfo/entries.c
    @@ -1,5 +1,5 @@
     /****************************************************************************
    - * Copyright (c) 2006,2007 Free Software Foundation, Inc.                   *
    + * Copyright (c) 2006-2007,2008 Free Software Foundation, Inc.              *
      *                                                                          *
      * Permission is hereby granted, free of charge, to any person obtaining a  *
      * copy of this software and associated documentation files (the            *
    @@ -37,7 +37,7 @@
     #include 
     #include 
     
    -MODULE_ID("$Id: entries.c,v 1.4 2007/11/03 21:00:27 tom Exp $")
    +MODULE_ID("$Id: entries.c,v 1.6 2008/06/21 21:25:01 tom Exp $")
     
     /****************************************************************************
      *
    @@ -127,6 +127,10 @@ _nc_leaks_tinfo(void)
     #if BROKEN_LINKER || USE_REENTRANT
         _nc_names_leaks();
         _nc_codes_leaks();
    +    FreeIfNeeded(_nc_prescreen.real_acs_map);
    +#endif
    +#if USE_WIDEC_SUPPORT
    +    FreeIfNeeded(_nc_wacs);
     #endif
     
         if ((s = _nc_home_terminfo()) != 0)
    diff --git a/ncurses/tinfo/lib_baudrate.c b/ncurses/tinfo/lib_baudrate.c
    index 4070160d..28405bee 100644
    --- a/ncurses/tinfo/lib_baudrate.c
    +++ b/ncurses/tinfo/lib_baudrate.c
    @@ -1,5 +1,5 @@
     /****************************************************************************
    - * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
    + * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
      *                                                                          *
      * Permission is hereby granted, free of charge, to any person obtaining a  *
      * copy of this software and associated documentation files (the            *
    @@ -80,7 +80,7 @@
     #undef USE_OLD_TTY
     #endif /* USE_OLD_TTY */
     
    -MODULE_ID("$Id: lib_baudrate.c,v 1.25 2007/10/20 15:00:41 Rong-En.Fan Exp $")
    +MODULE_ID("$Id: lib_baudrate.c,v 1.26 2008/06/21 20:46:10 tom Exp $")
     
     /*
      *	int
    @@ -217,19 +217,22 @@ baudrate(void)
         }
     #endif
     
    +    if (cur_term != 0) {
     #ifdef USE_OLD_TTY
    -    result = cfgetospeed(&cur_term->Nttyb);
    -    ospeed = _nc_ospeed(result);
    +	result = cfgetospeed(&cur_term->Nttyb);
    +	ospeed = _nc_ospeed(result);
     #else /* !USE_OLD_TTY */
     #ifdef TERMIOS
    -    ospeed = cfgetospeed(&cur_term->Nttyb);
    +	ospeed = cfgetospeed(&cur_term->Nttyb);
     #else
    -    ospeed = cur_term->Nttyb.sg_ospeed;
    +	ospeed = cur_term->Nttyb.sg_ospeed;
     #endif
    -    result = _nc_baudrate(ospeed);
    +	result = _nc_baudrate(ospeed);
     #endif
    -    if (cur_term != 0)
     	cur_term->_baudrate = result;
    +    } else {
    +	result = ERR;
    +    }
     
         returnCode(result);
     }
    diff --git a/ncurses/tinfo/lib_setup.c b/ncurses/tinfo/lib_setup.c
    index 0b104ab9..967d42a8 100644
    --- a/ncurses/tinfo/lib_setup.c
    +++ b/ncurses/tinfo/lib_setup.c
    @@ -53,7 +53,7 @@
     
     #include 		/* lines, columns, cur_term */
     
    -MODULE_ID("$Id: lib_setup.c,v 1.107 2008/06/07 22:22:58 tom Exp $")
    +MODULE_ID("$Id: lib_setup.c,v 1.108 2008/06/21 21:00:18 tom Exp $")
     
     /****************************************************************************
      *
    @@ -379,7 +379,7 @@ grab_entry(const char *const tn, TERMTYPE *const tp)
     **	and substitute it in for the prototype given in 'command_character'.
     */
     static void
    -do_prototype(void)
    +do_prototype(TERMINAL * termp)
     {
         int i;
         char CC;
    @@ -390,8 +390,8 @@ do_prototype(void)
         CC = *tmp;
         proto = *command_character;
     
    -    for_each_string(i, &(cur_term->type)) {
    -	for (tmp = cur_term->type.Strings[i]; *tmp; tmp++) {
    +    for_each_string(i, &(termp->type)) {
    +	for (tmp = termp->type.Strings[i]; *tmp; tmp++) {
     	    if (*tmp == proto)
     		*tmp = CC;
     	}
    @@ -483,6 +483,7 @@ _nc_locale_breaks_acs(void)
     NCURSES_EXPORT(int)
     _nc_setupterm(NCURSES_CONST char *tname, int Filedes, int *errret, bool reuse)
     {
    +    TERMINAL *term_ptr;
         int status;
     
         START_TRACE();
    @@ -527,14 +528,13 @@ _nc_setupterm(NCURSES_CONST char *tname, int Filedes, int *errret, bool reuse)
          * properly with this feature).
          */
         if (reuse
    -	&& cur_term != 0
    -	&& cur_term->Filedes == Filedes
    -	&& cur_term->_termname != 0
    -	&& !strcmp(cur_term->_termname, tname)
    -	&& _nc_name_match(cur_term->type.term_names, tname, "|")) {
    +	&& (term_ptr = cur_term) != 0
    +	&& term_ptr->Filedes == Filedes
    +	&& term_ptr->_termname != 0
    +	&& !strcmp(term_ptr->_termname, tname)
    +	&& _nc_name_match(term_ptr->type.term_names, tname, "|")) {
     	T(("reusing existing terminal information and mode-settings"));
         } else {
    -	TERMINAL *term_ptr;
     
     	term_ptr = typeCalloc(TERMINAL, 1);
     
    @@ -577,7 +577,7 @@ _nc_setupterm(NCURSES_CONST char *tname, int Filedes, int *errret, bool reuse)
     	set_curterm(term_ptr);
     
     	if (command_character && getenv("CC"))
    -	    do_prototype();
    +	    do_prototype(term_ptr);
     
     	/*
     	 * If an application calls setupterm() rather than initscr() or
    diff --git a/ncurses/tinfo/lib_ttyflags.c b/ncurses/tinfo/lib_ttyflags.c
    index 2cb9fd67..0435bc9f 100644
    --- a/ncurses/tinfo/lib_ttyflags.c
    +++ b/ncurses/tinfo/lib_ttyflags.c
    @@ -38,7 +38,7 @@
     #include 
     #include 		/* cur_term */
     
    -MODULE_ID("$Id: lib_ttyflags.c,v 1.16 2008/05/03 22:39:03 tom Exp $")
    +MODULE_ID("$Id: lib_ttyflags.c,v 1.17 2008/06/21 20:53:06 tom Exp $")
     
     NCURSES_EXPORT(int)
     _nc_get_tty_mode(TTY * buf)
    @@ -101,41 +101,49 @@ _nc_set_tty_mode(TTY * buf)
     NCURSES_EXPORT(int)
     def_shell_mode(void)
     {
    -    T((T_CALLED("def_shell_mode()")));
    +    int rc = ERR;
     
    -    /*
    -     * If XTABS was on, remove the tab and backtab capabilities.
    -     */
    +    T((T_CALLED("def_shell_mode()")));
     
    -    if (_nc_get_tty_mode(&cur_term->Ottyb) != OK)
    -	returnCode(ERR);
    +    if (cur_term != 0) {
    +	/*
    +	 * If XTABS was on, remove the tab and backtab capabilities.
    +	 */
    +	if (_nc_get_tty_mode(&cur_term->Ottyb) == OK) {
     #ifdef TERMIOS
    -    if (cur_term->Ottyb.c_oflag & OFLAGS_TABS)
    -	tab = back_tab = NULL;
    +	    if (cur_term->Ottyb.c_oflag & OFLAGS_TABS)
    +		tab = back_tab = NULL;
     #else
    -    if (cur_term->Ottyb.sg_flags & XTABS)
    -	tab = back_tab = NULL;
    +	    if (cur_term->Ottyb.sg_flags & XTABS)
    +		tab = back_tab = NULL;
     #endif
    -    returnCode(OK);
    +	    rc = OK;
    +	}
    +    }
    +    returnCode(rc);
     }
     
     NCURSES_EXPORT(int)
     def_prog_mode(void)
     {
    -    T((T_CALLED("def_prog_mode()")));
    +    int rc = ERR;
     
    -    /*
    -     * Turn off the XTABS bit in the tty structure if it was on.
    -     */
    +    T((T_CALLED("def_prog_mode()")));
     
    -    if (_nc_get_tty_mode(&cur_term->Nttyb) != OK)
    -	returnCode(ERR);
    +    if (cur_term != 0) {
    +	/*
    +	 * Turn off the XTABS bit in the tty structure if it was on.
    +	 */
    +	if (_nc_get_tty_mode(&cur_term->Nttyb) == OK) {
     #ifdef TERMIOS
    -    cur_term->Nttyb.c_oflag &= ~OFLAGS_TABS;
    +	    cur_term->Nttyb.c_oflag &= ~OFLAGS_TABS;
     #else
    -    cur_term->Nttyb.sg_flags &= ~XTABS;
    +	    cur_term->Nttyb.sg_flags &= ~XTABS;
     #endif
    -    returnCode(OK);
    +	    rc = OK;
    +	}
    +    }
    +    returnCode(rc);
     }
     
     NCURSES_EXPORT(int)
    -- 
    2.44.0
    
    
    C nameAda nameman page
    _nc_freeall()Curses_Free_Allcurs_trace.3x
    _tracef()Trace_Putcurs_trace.3x
    assume_default_colors()Assume_Default_Colorsdefault_colors.3x
    baudrate()Baudratecurs_termattrs.3x
    beep()Beepcurs_beep.3x
    copywin()Copycurs_overlay.3x
    current_field()Currentform_page.3x
    current_item()Currentmitem_current.3x
    curs_set()Set_Cursor_Visibilitycurs_kernel.3x
    curscrCurrent_Windowcurs_initscr.3x
    curses_version()Curses_Versioncurs_extend.3x
    curs_set()Set_Cursor_Visibilitycurs_kernel.3x
    data_ahead()Data_Aheadform_data.3x
    data_behind()Data_Behindform_data.3x
    def_prog_mode()Save_Curses_Modecurs_kernel.3x
    define_key()Define_Keydefine_key.3x
    del_panel()Deletepanel.3x
    def_prog_mode()Save_Curses_Modecurs_kernel.3x
    delay_output()Delay_Outputcurs_util.3x
    del_panel()Deletepanel.3x
    delwin()Deletecurs_window.3x
    derwin()Derived_Windowcurs_window.3x
    doupdate()Update_Screencurs_refresh.3x
    field_info()Infoform_field_info.3x
    field_init()Get_Field_Init_Hookform_hook.3x
    field_just()Get_Justificationform_field_just.3x
    field_opts_on()Switch_Optionsform_field_opts.3x
    field_opts()Get_Optionsform_field_opts.3x
    field_opts()Get_Optionsform_field_opts.3x
    field_opts_on()Switch_Optionsform_field_opts.3x
    field_pad()Pad_Characterform_field_attributes.3x
    field_status()Changedform_field_buffer.3x
    field_term()Get_Field_Term_Hookform_hook.3x
    form_driver()Driverform_driver.3x
    form_fields()Fieldsform_field.3x
    form_init()Get_Form_Init_Hookform_hook.3x
    form_opts_on()Switch_Optionsform_opts.3x
    form_opts()Get_Optionsform_opts.3x
    form_opts()Get_Optionsform_opts.3x
    form_opts_on()Switch_Optionsform_opts.3x
    form_page()Pageform_page.3x
    form_sub()Get_Sub_Windowform_win.3x
    form_term()Get_Form_Term_Hookform_hook.3x
    initscr()Init_Screencurs_initscr.3x
    initscr()Init_Windowscurs_initscr.3x
    intrflush()Set_Flush_On_Interrupt_Modecurs_inopts.3x
    isendwin()Is_End_Windowcurs_initscr.3x
    is_linetouched()Is_Touchedcurs_touch.3x
    is_wintouched()Is_Touchedcurs_touch.3x
    isendwin()Is_End_Windowcurs_initscr.3x
    item_count()Item_Countmenu_items.3x
    item_description();Descriptionmitem_name.3x
    item_index()Get_Indexmitem_current.3x
    item_init()Get_Item_Init_Hookmenu_hook.3x
    item_name()Namemitem_name.3x
    item_opts_on()Switch_Optionsmitem_opts.3x
    item_opts()Get_Optionsmitem_opts.3x
    item_opts()Get_Optionsmitem_opts.3x
    item_opts_on()Switch_Optionsmitem_opts.3x
    item_term()Get_Item_Term_Hookmenu_hook.3x
    item_userptrGet_User_Datamitem_userptr.3x
    item_userptrGet_User_Datamitem_userptr.3x
    menu_init()Get_Menu_Init_Hookmenu_hook.3x
    menu_items()Itemsmenu_items.3x
    menu_mark()Markmenu_mark.3x
    menu_opts_on()Switch_Optionsmenu_opts.3x
    menu_opts()Get_Optionsmenu_opts.3x
    menu_opts()Get_Optionsmenu_opts.3x
    menu_opts_on()Switch_Optionsmenu_opts.3x
    menu_pad()Pad_Charactermenu_attributes.3x
    menu_pattern()Patternmenu_pattern.3x
    menu_requestname.3xmenu_driver.3x
    move_field()Moveform_field.3x
    move_panel()Movepanel.3x
    mvderwin()Move_Derived_Windowcurs_window.3x
    mvwaddch()Addcurs_addch.3x
    mvwaddchnstr()Addcurs_addchstr.3x
    mvwaddch()Addcurs_addch.3x
    mvwaddnstr()Addcurs_addstr.3x
    mvwchgat()Change_Attributescurs_attr.3x
    mvwdelch()Delete_Charactercurs_delch.3x
    mvwgetnstr()Getcurs_getstr.3x
    mvwin()Move_Windowcurs_window.3x
    mvwinch()Peekcurs_inch.3x
    mvwinchnstr()Peekcurs_inchstr.3x
    mvwinch()Peekcurs_inch.3x
    mvwinnstr()Peekcurs_instr.3x
    mvwinsch()Insertcurs_insch.3x
    mvwinsnstr()Insertcurs_insstr.3x
    mvwin()Move_Windowcurs_window.3x
    napms()Nap_Milli_Secondscurs_kernel.3x
    _nc_freeall()Curses_Free_Allcurs_trace.3x
    new_field()Createform_field_new.3x
    new_field()New_Fieldform_field_new.3x
    new_form()Createform_new.3x
    new_item()Createmitem_new.3x
    new_item()New_Itemmitem_new.3x
    new_menu()Createmenu_new.3x
    newpad()New_Padcurs_pad.3x
    new_page()Is_New_Pageform_new_page.3x
    new_panel()Createpanel.3x
    new_panel()New_Panelpanel.3x
    newpad()New_Padcurs_pad.3x
    newwin()Createcurs_window.3x
    nl()Set_NL_Modecurs_outopts.3x
    nodelay()Set_NoDelay_Modecurs_inopts.3x
    scale_menu()Scalemenu_win.3x
    scr_dump()Screen_Dump_To_Filecurs_scr_dump.3x
    scr_init()Screen_Init_From_Filecurs_scr_dump.3x
    scrollok()Allow_Scrollingcurs_outopts.3x
    scr_restore()Screen_Restore_From_Filecurs_scr_dump.3x
    scr_set()Screen_Set_Filecurs_scr_dump.3x
    scrollok()Allow_Scrollingcurs_outopts.3x
    set_current_field()Set_Currentform_page.3x
    set_current_item()Set_Currentmitem_current.3x
    set_field_back()Set_Backgroundform_field_attributes.3x
    set_panel_userptrSet_User_Datapanel.3x
    set_top_row()Set_Top_Rowmitem_current.3x
    show_panel()Showpanel.3x
    slk_attr()Get_Soft_Label_Key_Attributescurs_slk.3x
    slk_attr()Get_Soft_Label_Key_Attributescurs_slk.3x
    slk_attron()Switch_Soft_Label_Key_Attributescurs_slk.3x
    slk_attrset()Set_Soft_Label_Key_Attributescurs_slk.3x
    slk_attr()Get_Soft_Label_Key_Attributescurs_slk.3x
    slk_attr()Get_Soft_Label_Key_Attributescurs_slk.3x
    slk_clear()Clear_Soft_Label_Keyscurs_slk.3x
    slk_color()Set_Soft_Label_Key_Colorcurs_slk.3x
    slk_init()Init_Soft_Label_Keyscurs_slk.3x
    top_row()Top_Rowmitem_current.3x
    touchline()Touchcurs_touch.3x
    touchwin()Touchcurs_touch.3x
    _tracef()Trace_Putcurs_trace.3x
    trace()Trace_oncurs_trace.3x
    unctrl()Un_Controlcurs_util.3x
    unctrl()Un_Controlcurs_util.3x
    update_panels()Update_Panelspanel.3x
    use_default_colors()Use_Default_Colorsdefault_colors.3x
    use_extended_names()Use_Extended_Namescurs_extend.3x
    waddch()Addcurs_addch.3x
    waddchnstr()Addcurs_addchstr.3x
    waddch()Addcurs_addch.3x
    waddnstr()Addcurs_addstr.3x
    wattr_get()Get_Character_Attributescurs_attr.3x
    wattr_get()Get_Character_Attributecurs_attr.3x
    wattron()Switch_Character_Attributecurs_attr.3x
    wattrset()Set_Character_Attributescurs_attr.3x
    wbkgd()Change_Backgroundcurs_bkgd.3x
    wbkgdget()Get_Backgroundcurs_bkgd.3x
    wbkgdset()Set_Backgroundcurs_bkgd.3x
    wbkgd()Change_Backgroundcurs_bkgd.3x
    wborder()Bordercurs_border.3x
    wchgat()Change_Attributescurs_attr.3x
    wclear()Clearcurs_clear.3x
    wgetch()Get_Keystrokecurs_getch.3x
    wgetnstr()Getcurs_getstr.3x
    whline()Horizontal_Linecurs_border.3x
    winch()Peekcurs_inch.3x
    winchnstr()Peekcurs_inchstr.3x
    winch()Peekcurs_inch.3x
    winnstr()Peekcurs_instr.3x
    winsch()Insertcurs_insch.3x
    winsdelln()Insert_Delete_Linescurs_deleteln.3x