Commit graph

14 commits

Author SHA1 Message Date
wiz
af1d69bbee Update to 5.5. Solaris PLIST should be checked for correctness.
This  release  is  designed  to  be upward compatible from ncurses 5.0
through   5.4;  very  few  applications  will  require  recompilation,
depending   on  the  platform.  These  are  the  highlights  from  the
change-log since ncurses 5.4 release.

Interface changes:
  * terminfo   installs  "xterm-new"  as  "xterm"  entry  rather  than
    "xterm-old" (aka xterm-r6).
  * terminfo  data  is  installed using the tic -x option (few systems
    still use ncurses 4.2).
  * modify  C++  binding to work with newer C++ compilers by providing
    initializers  and  using  modern casts. Old-style header names are
    still  used  in  this  release  to allow compiling with not-so-old
    compilers.
  * modify parameter type in c++ binding for insch() and mvwinsch() to
    be  consistent  with  underlying  ncurses  library  (was  char, is
    chtype).
  * change NCursesWindow::err_handler() to a virtual function.
  * form  and  menu  libraries  now  work  with  wide-character  data.
    Applications  which  bypassed the form library and manipulated the
    FIELD.buf  data  directly  will  not  work properly with libformw,
    since   that   no   longer   points  to  an  array  of  char.  The
    set_field_buffer()  and field_buffer() functions translate to/from
    the actual field data.
  * add  symbol  to  curses.h which can be used to suppress include of
    stdbool.h, e.g.,
             #define NCURSES_ENABLE_STDBOOL_H 0
             #include <curses.h>

  * change  SP->_current_attr  to  a pointer, adjust ifdef's to ensure
    that  libtinfo.so  and  libtinfow.so have the same ABI. The reason
    for  this  is  that  the  corresponding  data which belongs to the
    upper-level ncurses library has a different size in each model.
  * winnstr()   now   returns  multibyte  character  strings  for  the
    wide-character configuration.
  * assume_default_colors()      no      longer      requires     that
    use_default_colors() be called first.
  * data_ahead() now works with wide-characters.
  * slk_set()  and  slk_wset()  now  accept  and  store  multibyte  or
    multicolumn characters.
  * start_color()  now returns OK if colors have already been started.
    start_color() also returns ERR if it cannot allocate memory.
  * pair_content()  now returns -1 for consistency with init_pair() if
    it corresponds to the default-color.
  * unctrl()  now returns null if its parameter does not correspond to
    an unsigned char.

New features and improvements:
  * library
       + environment     variable     NCURSES_NO_UTF8_ACS     supports
         miscellaneous   terminal  emulators  which  ignore  alternate
         character set escape sequences when in UTF-8 mode.
       + modify  initialization  of  key  lookup  table  so that if an
         extended  capability (tic -x) string is defined, and its name
         begins  with  'k',  ncurses  will automatically treat it as a
         key.
       + change  GPM  initialization,  using  dl  library  to  load it
         dynamically at runtime.
       + form, menu and panel libraries support debug-tracing.
  * add   NCURSES-Programming-HOWTO.html   by   Pradeep   Padala  (see
    http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/).
  * programs:
  * infocmp:
       + The  -i  option  now matches 8-bit controls against its table
         entries, e.g., so it can analyze the xterm-8bit entry.
       + add  "-x"  option to infocmp like tic's "-x", for use in "-F"
         comparisons.  This  modifies  infocmp to only report extended
         capabilities  if  the  -x  option  is given, making this more
         consistent  with  tic.  Some scripts may break, since infocmp
         previous gave this information without an option.
  * tic:
       + modify  termcap-parsing  to retain 2-character aliases at the
         beginning of an entry if the "-x" option is used in tic.
       + filter  out  long  extended names when translating to termcap
         format.  Only  two  characters  are  permissible  for termcap
         capability names.
       + correct  translation  of  "%%" in terminfo format to termcap,
         e.g., using "tic -C".
       + modify  the  "-c  -v" options to ignore delays when comparing
         strings.  Also  modify  it  to  ignore a canceled sgr string,
         e.g.,  for terminals which cannot properly combine attributes
         in one control sequence.
       + add  a  check  for  improperly  ended  strings, i.e., where a
         following line begins in column 1.
       + add a check in tic for terminfo entries having an sgr0 but no
         sgr string. This confuses Tru64 and HPUX curses when combined
         with  color,  e.g., making them leave line-drawing characters
         in odd places.
       + add  check (with debug configuration) that provides about the
         runtime  changes  that  would  be  made  to  sgr0 for termcap
         applications.
  * tset:
       + add  -c  and  -w  options  to allow user to suppress ncurses'
         resizing  of the terminal emulator window in the special case
         where it is not able to detect the true size.

Major bug fixes:
  * improve  logic  in tgetent() which adjusts the termcap "me" string
    to  work with ISO-2022 string used in xterm-new. This is a feature
    that was incompletely implemented in ncurses 5.3. ncurses attempts
    to  provide  termcap clients with the portion of the sgr0 (termcap
    "me") string that does not reset line-drawing.
  * cells  in  the  WINDOW  which  are  continuations of a multicolumn
    character   are   encoded   differently,  making  repainting  more
    reliable.
  * amend  change to setupterm() in ncurses 5.4 (20030405) which would
    reuse  the value of cur_term if the same output was selected. This
    now  reuses  it  only  when  setupterm() is called from tgetent(),
    which  has no notion of separate SCREENs. Note that tgetent() must
    be called after initscr() or newterm() to use this feature.
  * make  setcchar() now works when its wchar_t* parameter is pointing
    to a string which contains more data than can be converted.
  * win_wchnstr() now works for more than one cell.
  * resizeterm() now processes all levels of window hierarchy.
  * disable  GPM  mouse support when $TERM happens to be prefixed with
    "xterm".  Gpm_Open()  would otherwise assert that it can deal with
    mouse events in this case.
  * add  SP->_screen_acs_map[], used to ensure that mapping of missing
    line-drawing   characters   is   handled  properly.  For  example,
    ACS_DARROW  is  absent  from  xterm-new, and it was coincidentally
    displayed the same as ACS_BTEE.

Portability:
  * configure script:
       + new options:

           --enable-largefile
                   set  compiler  and  linker  flags  to use largefile
                   support.

           --enable-ext-colors
                   Allow  encoding  of  256  foreground and background
                   colors,    e.g.,   with   the   xterm-256color   or
                   xterm-88color terminfo entries. This requires ABI 6
                   because it changes the size of cchar_t.

           --enable-ext-mouse
                   This  defines NCURSES_MOUSE_VERSION 2, and modifies
                   the encoding of mouse events to support wheel mice,
                   which may transmit buttons 4 and 5. This works with
                   xterm and similar terminal emulators. This requires
                   ABI  6  because  it  changes  the encoding of mouse
                   events.

           --with-chtype
                   overriding of the non-LP64 model's use of chtype

           --with-mmask-t
                   overriding of the non-LP64 model's use of mmask_t

           --without-xterm-new
                   Installs  "xterm-old"  as  the "xterm" entry of the
                   terminfo database.

       + The  --with-termlib option now accepts a value which sets the
         name  of the terminfo library. This would allow a packager to
         build libtinfow.so renamed to coincide with libtinfo.so
       + fixes/improvements for cross-compiling:
            o suppress     $suffix     in     misc/run_tic.sh     when
              cross-compiling.  This  allows cross-compiles to use the
              host's  tic  program  to  handle the "make install.data"
              step.
            o correct       BUILD_CPPFLAGS       substitution       in
              ncurses/Makefile.in,  to  allow  cross-compiling  from a
              separate directory tree.
  * library:
       + add  ifdef's  for  _LP64  in curses.h to avoid using wasteful
         64-bits  for  chtype  and  mmask_t,  but add configure option
         --disable-lp64 in case anyone used that configuration.
       + modify  C++  binding to use some C internal functions to make
         it compile properly on Solaris (and other platforms).
       + remove  check  in  newwin()  that prevents allocating windows
         that extend beyond the screen (Solaris does this).
       + check  for  nl_langinfo(CODESET),  use  it if available. This
         replaces  ad  hoc  tests of environment variables to check if
         the  terminal is setup for UTF-8 encoding. Applications which
         do  not  call  setlocale()  should be corrected, to make them
         work properly with UTF-8 encoding.
         In  particular,  applications  which  assume (and do not call
         setlocale())  that Latin-1 codes are printable will no longer
         work  in a UTF-8 locale since the ad hoc check of environment
         variables  to  see  if  the locale was UTF-8 is not used when
         nl_langinfo(CODESET) is available.
       + use  setlocale() to query the program's current locale rather
         than  using  getenv().  This supports applications which rely
         upon  legacy treatment of 8-bit characters when the locale is
         not initialized.
2005-10-20 00:01:32 +00:00
wiz
7c34813f59 Add two patches (that will end up in the next ncurses release) to make
this build with NetBSD make older than Dec 26 2003.
Problem was that ${FOO:$o=.lo} was not expanded as in GNU make
before that date; problem found by Thomas Dickey.
Remove USE_GNU_TOOLS+=make.
2004-03-08 13:26:03 +00:00
reed
d9b7f0b71f Allow ncurses to install useful reset, tset, tput and clear utilities
(and manpages).  This is in regards to my PR #23103.
I bumped PKGREVISION in Makefile but not in buildlink2.mk file.
The ncurses libraries and headers didn't change. No need to bump
PKGREVISIONs for all the packages that depend on libncurses.
2003-12-20 08:49:27 +00:00
wiz
52e547a79a Update to 5.3:
Interface changes:
  * change type for bool used in headers to NCURSES_BOOL, which usually is the same as the
    compiler's definition for bool.
  * add all but two functions for X/Open curses wide-character support. These are only
    available if the library is configured using the --enable-widec option. Missing functions
    are
       * pecho_wchar()
       * slk_wset()
  * add environment variable $NCURSES_ASSUMED_COLORS to modify the assume_default_colors()
    extension.
New features and improvements:
  * Improved support for termcap applications:
       * add logic to dump_entry.c to remove function-key definitions that do not fit into the
         1023-byte limit for generated termcaps. This makes hds200 fit.
       * modify tgetent() to check if exit_attribute_mode resets the alternate character set,
         and if so, attempt to adjust the copy of the termcap "me" string which it will return
         to eliminate that part. In particular, 'screen' would lose track of line-drawing
         characters.
       * add check/fix to comp_parse.c to suppress warning about missing acsc string. This
         happens in configurations where raw termcap information is processed; tic already
         does this and other checks.
       * add tic -A option to suppress capabilities which are commented out when translating
         to termcap.
       * modify logic in lib_baudrate.c for ospeed, for FreeBSD to make it work properly for
         termcap applications (patch by Andrey A Chernov).
  * add a call to _nc_keypad() in keypad() to accommodate applications such as nvi, which use
    curses for output but not for input (fixes Debian #131263, cf: 20011215).
  * correct logic for COLORFGBG environment variable: if rxvt is compiled with xpm support,
    the variable has three fields, making it slightly incompatible with itself. In either
    case, the background color is the last field.
Major bug fixes:
  * rewrote limit-checks in wscrl() and associated _nc_scroll_window(), to ensure that if the
    parameter of wscrl() is larger than the size of the scrolling region, then the scrolling
    region will be cleared.
  * modify tset to restore original I/O modes if an error is encountered. Also modify to use
    buffered stderr consistently rather than mixing with write().
  * move calls to def_shell_mode() and def_prog_mode() before loop with callbacks in
    lib_set_term.c, since the c++ demo otherwise initialized the tty modes before saving them.
  * modified wresize() to ensure that a failed realloc will not corrupt the window structure,
    and to make subwindows fit within the resized window.
  * altered resizeterm() to avoid having it fail when a child window cannot be resized because
    it would be larger than its parent.
  * correct/improve logic to produce an exit status for errors in tput, which did not exit
    with an error when told to put a string not in the current terminfo entry.
  * modify behavior of can_clear_with() so that if an application is running in a non-bce
    terminals with default colors enabled, it returns true, allowing the user to select/paste
    text without picking up extraneous trailing blanks.
  * add a check in relative_move() to guard against buffer overflow in the overwrite logic.
  * add some limit/pointer checks to -S option of tputs.
  * modify mvcur() to avoid emitting newline characters when nonl() mode is set. Normally this
    is not a problem since the actual terminal mode is set to suppress nl/crlf translations,
    however it is useful to allow the caller to manipulate the terminal mode to avoid
    staircasing effects after spawning a process which writes messages (for lynx 2.8.4).
Portability:
  * configure script:
       * modify check in --disable-overwrite option so that it is used by default unless the
         --prefix/$prefix value is not /usr, in attempt to work around packagers who do not
         read the INSTALL notes.
       * correct a typo in configure --enable-colorfgbg option, and move it to the
         experimental section (cf: 20011208).
       * modify configure script to allow building with termcap only, or with fallbacks only.
         In this case, we do not build tic and toe.
       * modify run_tic.sh to check if the build is a cross-compile. In that case, do not use
         the build's tic to install the terminfo database.
       * modify c++/Makefile.in to accommodate archive programs that are different for C++
         than for C, and add cases for vendor's C++ compilers on Solaris and IRIX.
       * add several configure script options to aid with cross-compiling: --with-build-cc,
         --with-build-cflags, --with-build-ldflags, and --with-build-libs.
       * add experimental --with-caps=XXX option to customize to similar terminfo database
         formats such as AIX 4.x
       * add configure option --with-ospeed to assist packagers in transition to 5.3 change to
         ospeed type.
  * library:
       * implement a simple vsscanf() fallback function which uses the %n conversion to help
         parse the input data.
       * various fixes to build/work with different implementations of vsscanf().
       * add/use macro to suppress sign-extension of char type on platforms where this is a
         problem in ctype macros, e.g., Solaris.
       * finish changes needed to build dll's on cygwin.
       * add #undef's before possible redefinition of ERR and OK in curses.h
  * programs:
       * modify ifdef's in write_entry.c to allow use of symbolic links on platforms with no
         hard links, e.g., BeOS.
       * modify _nc_write_entry() to allow for the possibility that linking aliases on a
         filesystem that ignores case would not succeed because the source and destination
         differ only by case, e.g., NCR260VT300WPP0 on cygwin.
       * modify logic in tic, toe, tput and tset which checks for basename of argv[0] to work
         properly on systems such as OS/2 which have case-independent filenames and/or program
         suffixes, e.g., ".ext".
2003-01-21 11:05:16 +00:00
jlam
ab40caab2e Patch with ncurses-5.1-20001014.patch.gz. This has a few minor bug fixes,
but mostly comprises patches to ease building on NetBSD pkgsrc.  Tom Dickey
has been kind enough to accept our patches back into the main source tree.
Many thanks to him.
2000-10-15 04:50:11 +00:00
jlam
282ad1d424 Update ncurses to 5.1 (20001009). Changes from version 5.0 include better
support for termcap, new extensions for color, several bug fixes, minor API
changes, buffer-overrun checks.
2000-10-12 14:56:42 +00:00
jlam
c5d40ff7ec Update ncurses to 5.0. From the release notes:
We decided to release ncurses as a new whole number release (5.0)
   because it incorporates several interface changes, including some that
   would invalidate existing shared libraries. These are the highlights
   from the change-log since ncurses 4.2 release.

   Interface changes:
     * The principal source of changes to the interface comes from the
       release of X/Open Curses in 1997. Earlier versions of ncurses (4.0
       and before) were based on a draft version of the specification.
       The release version adds parameters to some functions to support
       the evolving internationalization of curses. These summarize the
       impact:
          + modified several prototypes to correspond with 1997 version
            of X/Open Curses (affects ABI since developers have used
            attr_get).
          + corrected prototypes for slk_* functions, using chtype rather
            than attr_t.
          + the slk_attr_{set,off,on} functions need an additional void*
            parameter according to XSI.
          + correct macros for wattr_set, wattr_get, separate wattrset
            macro from these to preserve behavior that allows attributes
            to be combined with color pair numbers.
          + reviewed/updated curses.h, term.h against X/Open Curses Issue
            4 Version 2. This includes making some parameters
            NCURSES_CONST rather than const, e.g., in termcap.h.
          + reviewed/corrected macros in curses.h as per XSI document.
          + add set_a_attributes and set_pglen_inch to terminfo
            structure, as per XSI and Solaris 2.5.
     * The newest version of the X/Open Curses is implemented on Solaris
       and other vendor's systems. It adds new features to the terminfo
       descriptions:
          + implement tparm %l format.
          + implement tparm printf-style width and precision for %s, %d,
            %x, %o as per XSI.
     * We made additional changes to reduce impact by future interface
       changes:
          + rename key_names[] array to _nc_key_names since it is not
            part of the curses interface.
          + move macro winch to a function, to hide details of struct
            ldat
     * modify configure script to embed ABI in shared libraries for HP-UX
       10.x (detailed request by Tim Mooney).
     * modify configuration of shared libraries on Digital Unix so that
       versioning is embedded in the library, rather than implied by
       links (patch by Tim Mooney).

   New features:
     * enable sigwinch handler by default.
     * turn on hashmap scrolling code by default
     * improved support for termcap applications
          + modify tput to accept termcap names as an alternative to
            terminfo names.
          + provide support for termcap PC variable by copying it from
            terminfo data and using it as the padding character in tputs.
          + provide support for termcap ospeed variable by copying it
            from the internal cur_term member, and using ospeed as the
            baudrate reference for the delay_output and tputs functions.
          + change name-comparisons in lib_termcap to compare no more
            than 2 characters.
          + add configure option --enable-tcap-names, which essentially
            allows users to define new capabilities as in termcap.
     * add mouse support to ncurses menus.
     * add mouse and dll support for OS/2 EMX
     * modify terminfo parsing to accept octal and hexadecimal constants
     * add configure option --enable-no-padding, to allow environment
       variable $NCURSES_NO_PADDING to eliminate non-mandatory padding,
       thereby making terminal emulators (e.g., for vt100) a little more
       efficient.
     * modify lib_color.c to eliminate dependency on orig_colors and
       orig_pair, since SVr4 curses does not require these either, but
       uses them when they are available.
     * add -f option to infocmp and tic, which formats the terminfo
       if/then/else/endif so that they are readable (with newlines and
       tabs).
     * modify tic to compile into %'char' form in preference to
       %{number}, since that is a little more efficient.

   Major bug fixes:
     * modify lib_tstp.c to block SIGTTOU when handling SIGTSTP, fixes a
       problem where ncurses applications which were run via a shell
       script would hang when given a ^Z. Also, check if the terminal's
       process group is consistent, i.e., a shell has not taken ownership
       of it, before deciding to save the current terminal settings in
       the SIGTSTP handler.
     * suppress sc/rc capabilities from terminal description if they
       appear in smcup/rmcup. This affects only scrolling optimization,
       to fix a problem reported by several people with xterm's alternate
       screen, though the problem is more general.
     * modify relative_move and tputs to avoid an interaction with the
       BSD-style padding. The relative_move function could produce a
       string to replace on the screen which began with a numeric
       character, which was then interpreted by tputs as padding.
     * modify setupterm so that cancelled strings are treated the same as
       absent strings, cancelled and absent booleans false (does not
       affect tic, infocmp).
     * modify lib_vidattr.c to allow for terminal types (e.g.,
       xterm-color) which may reset all attributes in the 'op'
       capability, so that colors are set before turning on bold and
       other attributes, but still after turning attributes off.
     * use 'access()' to check if ncurses library should be permitted to
       open or modify files with fopen/open/link/unlink/remove calls, in
       case the calling application is running in setuid mode.
     * correction to doupdate, for case where terminal does not support
       insert/delete character. The logic did not check that there was a
       difference in alignment of changes to old/new screens before
       repainting the whole non-blank portion of the line. Modified to
       fall through into logic that reduces by the portion which does not
       differ.
2000-01-15 18:39:28 +00:00
jlam
369c1faa21 Go ahead and build and install the the ncurses C++ application framework
library.  This was a side-effect of trying to deal with --with-cxx and
--without-cxx.  We accept the default --with-cxx.  This should work
regardless of whether libg++ exists.
1999-09-24 00:39:13 +00:00
fredb
29c3fca0e7 Patch "configure" to explicitly disable search for libg++. 1999-09-13 21:20:33 +00:00
jlam
bb6c013685 Change order of -L directives and libraries to linker so that
libncurses.la is listed first.  This allows a previous installation
of ncurses to exist and have the build of the current ncurses still
find the correct libs.
1999-07-16 18:43:48 +00:00
jlam
573317f6c0 * Update "devel/ncurses" to latest release 4.2.
* Libtoolize library build.
1999-07-06 07:51:03 +00:00
agc
86db14e819 Add NetBSD RCS Ids. 1998-08-07 10:35:47 +00:00
agc
cf51a41ceb Fix a typo in the panel/Makefile.in file (INSTALL_PREFIX lacked a
trailing '@') - pointed out by Rob Windsor.  Move configure script
mods to patch-ab, and coalesce them.
1998-03-08 01:28:31 +00:00
tron
f30275b1a9 Ensure that the includes files goto "${PREFIX}/include" even if
there is another instance of "ncurses" e.g. in "/usr/local".
1998-02-01 17:33:19 +00:00