]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - NEWS
ncurses 6.0 - patch 20170527
[ncurses.git] / NEWS
diff --git a/NEWS b/NEWS
index 4538903da504ef01bc6f7f103fe9c00765151ec5..e22c2e1cb7d31c629b44b772a2531c72f87c7e56 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,5 @@
 -------------------------------------------------------------------------------
--- Copyright (c) 1998-2015,2016 Free Software Foundation, Inc.               --
+-- Copyright (c) 1998-2016,2017 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: NEWS,v 1.2606 2016/05/15 01:20:32 tom Exp $
+-- $Id: NEWS,v 1.2847 2017/05/27 22:31:39 tom Exp $
 -------------------------------------------------------------------------------
 
 This is a log of changes that ncurses has gone through since Zeyd started
@@ -38,13 +38,515 @@ Contributors include those who have provided patches (even small ones), as well
 as those who provide useful information (bug reports, analyses).  Changes with
 no cited author are the work of Thomas E Dickey (TD).
 
-A few contributors are given in this file by their initials.
-They each account for one percent or more of the changes since 1.9.9e.
+A few contributors may be cited in this file by their initials.
+Each accounts for half of one percent or more of the changes since 1.9.9e.
 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.
 
+20170527
+       + improved test/picsmap.c:
+         + lookup named colors for xpm files in rgb.txt
+         + accept blanks in color-keys for xpm files.
+         + if neither xbm/xpm work, try "convert", which may be available.
+
+20170520
+       + modify test/picsmap.c to read xpm files.
+       + modify package/debian/* to create documentation packages, so the
+         related files can be checked with lintian.
+       + fix some typos in manpages (report/patch by Sven Joachim).
+
+20170513
+       + add test/picsmap.c to fill in some testing issues not met by dots.
+         The initial version reads X bitmap (".xbm") files.
+       + repair logic which forces a repaint where a color-pair's content is
+         changed (cf: 20170311).
+       + improve tracemunch, showing screenXX pointers as names.
+
+20170506
+       + modify tic/infocmp display of numeric values to use hexadecimal when
+         they are "close" to a power of two, making the result more readable.
+       + improve discussion of portability in curs_mouse.3x
+       + change line-length for generated html/manpages to 78 columns from 65.
+       + improve discussion of line-drawing characters in curs_add_wch.3x
+         (prompted by discussion with Lorinczy Zsigmond).
+       + cleanup formatting of hackguide.html and ncurses-intro.html
+       + add examples for WACS_D_PLUS and WACS_T_PLUS to test/ncurses.c
+
+20170429
+       + corrected a case where $with_gpm was set to "maybe" after CF_WITH_GPM,
+         overlooked in 20160528 fixes (report by Alexandre Bury).
+       + improve a couple of test-program's help-messages.
+       + corrected loop in rain.c from 20170415 changes.
+       + modify winnstr and winchnstr to return error if the output pointer is
+         null, as well as adding a null pointer check of the window pointer
+         for better compatibility with other implementations.
+       + improve discussion of NetBSD curses in scr_dump.5
+       + modify LIMIT_TYPED macro in new_pair.h to avoid changing sign of the
+         value to be limited (reports by Darby Payne, Rob Boudreau).
+       + update config.guess, config.sub from
+               http://git.savannah.gnu.org/cgit/config.git
+
+20170422
+       + build-fix for termcap-configuration (report by Chi-Hsuan Yen).
+       + improve terminfo manual page discussion of control- and graphics-
+         characters.
+       + remove tic warning about "^?" in string capabilities, which was
+         marked as an extension (cf: 20000610, 20110820); however all Unix
+         implementations support this and X/Open Curses does not address it.
+         On the other hand, termcap never did support this feature.
+       + correct missing comma-separator between string capabilities in
+         icl6402 and m2-nam -TD
+       + restore rmir/smir in ansi+idc to better match original ansiterm+idc,
+         add alias ansiterm (report by Robert King).
+       + amend an old check for ambiguous use of "ma" in terminfo versus
+         a termcap use, if the capability is cancelled to treat it as number.
+       + correct a case in _nc_captoinfo() which read "%%" and emitted "%".
+       + modify sscanf calls in _nc_infotocap() for patterns "%{number}%+%c"
+         and "%'char'%+%c" to check that the final character is really 'c',
+         avoiding a case in icl6404 which cannot be converted to termcap.
+       + in _nc_infotocap(), add a check to ensure that terminfo "^?" is not
+         written to termcap, because the BSDs did not implement that.
+       + in _nc_tic_expand() and _nc_infotocap(), improve string-length check
+         when deciding whether to use "^X" or "\xxx" format for control
+         characters, to make the output of tic/infocmp more predictable.
+       + limit termcap "%d" width to 2 digits on input, and use "%2" in
+         preference to "%02" on output.
+       + correct terminfo/termcap conversion of "%02" and "%03" into "%2" and
+         "%3"; the result repeated the last character.
+       + add man/scr_dump.5 to document screen-dump format.
+
+20170415
+       + modify several test programs to use new popup_msgs, adapted from
+         help-screen used in test/edit_field.c
+       + drop two symbols obsoleted in 2004: _nc_check_termtype, and
+         _nc_resolve_uses
+       + fix some old copyright dates (cf: 20031025).
+       + build-fixes for test/savescreen.c to work with AIX and HPUX.
+       + minor fix to configure script, adding a backslash/continuation.
+       + extend TERMINAL structure for ABI 6 to store numbers internally as
+         integers rather than short, by adding new data for this purpose.
+       + more fixes for minor memory-leaks in test-programs.
+
+20170408
+       + change logic in wins_nwstr() to avoid addressing data past the output
+         of mbstowcs().
+       + correct a call to setcchar() in Data_Entry_w() from 20131207 changes.
+       + fix minor memory-leaks in test-programs.
+       + further improve ifdef in term_entry.h for internal definitions not
+         used by tack.
+
+20170401
+       + minor fixes for vt100+4bsd, e.g., delay in sgr for consistency -TD
+       + add smso for env230, to match sgr -TD
+       + remove p7/protect from sgr in fbterm -TD
+       + drop setf/setb from fbterm; setaf/setab are enough -TD
+       + make xterm-pcolor sgr consistent with other capabilities -TD
+       + add rmxx/smxx ECMA-48 strikeout extension to tmux and xterm-basic
+         (discussion with Nicholas Marriott)
+       + add test-programs sp_tinfo and extended_color
+       + modify no-leaks code for lib_cur_term.c to account for the tgetent()
+         cache.
+       + modify setupterm() to save original tty-modes so that erasechar()
+         works as expected.  Also modify _nc_setupscreen() to avoid redundant
+         calls to get original tty-modes.
+       + modify set_curterm() to update ttytype[] data used by longname().
+       + modify wattr_set() and wattr_get() to return ERR if win-parameter is
+         null, as documented.
+       + improve cast used for null-pointer checks in header macros, to
+         reduce compiler warnings.
+       + modify several functions, using the reserved "opts" parameter to pass
+         color- and pair-values larger than 16-bits:
+         + getcchar(), setcchar(), slk_attr_set(), vid_puts(), wattr_get(),
+           wattr_set(), wchgat(), wcolor_set().
+         + Other functions call these with the corresponding altered behavior,
+           including chgat(), mvchgat(), mvwchgat(), slk_color_on(),
+           slk_color_off(), vid_attr().
+       + add new functions for manipulating color- and pair-values larger
+         than 16-bits.  These are extended_color_content(),
+         extended_pair_content(), extended_slk_color(), init_extended_color(),
+         init_extended_pair(), and the corresponding sp-funcs.
+
+20170325
+       + fix a memory leak in the window-list when creating multiple screens
+         (reports by Andres Martinelli, Debian #783486).
+       + reviewed calls from link_test.c, added a few more null-pointer
+         checks.
+       + add a null-pointer check in ungetmouse, in case mousemask was not
+         called (report by "Kau").
+       + updated curs_sp_funcs.3x for new functions.
+
+20170318
+       + change TERMINAL structure in term.h to make it opaque.  Some
+         applications misuse its members, e.g., directly modifying it
+         rather than using def_prog_mode().
+       + modify utility headers such as tic.h to make it clearer which are
+         externals that are used by tack.
+       + improve curs_slk.3x in particular its discussion of portability.
+       + fix cut/paste in legacy_encoding.3x
+       + add prototype for find_pair() to new_pair.3x (report by Branden
+         Robinson).
+       + fix a couple of broken links in generated man-html documentation.
+       + regenerate man-html documentation.
+
+20170311
+       + modify vt100 rs2 string to reset vt52 mode and scrolling regions
+         (report/analysis by Robert King) -TD
+       + add vt100+4bsd building block, use that for older terminals rather
+         than "vt100" which is now mostly used as a building block for
+         terminal emulators -TD
+       + correct a few spelling errors in terminfo.src comments -TD
+       + add fbterm -TD
+       + fix a typo in ncurses.c test_attr legend (patch by Petr Vanek).
+       + changed internal colorpair_t to a struct, eliminating an internal
+         8-bit limit on colors
+       + add ncurses/new_pair.h
+       + add ncurses/base/new_pair.c with alloc_pair(), find_pair() and
+         free_pair() functions
+       + add test/demo_new_pair.c
+
+20170304
+       + improve terminfo manual description of terminfo syntax.
+       + clarify the use of wint_t vs wchar_t in curs_get_wstr.3x
+       + improve description of endwin() in manual.
+       + modify setcchar() and getcchar() to treat negative color-pair as an
+         error.
+       + fix a typo in include/hashed_db.h (Andre Sa).
+
+20170225
+       + fixes for CF_CC_ENV_FLAGS (report by Ross Burton).
+
+20170218
+       + fix several formatting issues with manual pages.
+       + correct read of terminfo entry in which all strings are absent or
+         explicitly cancelled.  Before this fix, the result was that all were
+         treated as only absent.
+       + modify infocmp to suppress mixture of absent/cancelled capabilities
+         that would only show as "NULL, NULL", unless the -q option is used,
+         e.g., to show "-, @" or "@, -".
+
+20170212
+       + build-fixes for PGI compilers (report by Adam J. Stewart)
+         + accept whitespace in sed expression for generating expanded.c
+         + modify configure check that g++ compiler warnings are not used.
+         + add configure check for -fPIC option needed for shared libraries.
+       + let configure --disable-ext-funcs override the default for the
+         --enable-sp-funcs option.
+       + mark some structs in form/menu/panel libraries as potentially opaque
+         without modifying API/ABI.
+       + add configure option --enable-opaque-curses for ncurses library and
+         similar options for the other libraries.
+
+20170204
+       + trim newlines, tabs and escaped newlines from terminfo "paths" passed
+         to db-iterator.
+       + ignore zero-length files in db-iterator; these are useful for
+         instance to suppress "$HOME/.terminfo" when not wanted.
+       + amended "b64:" encoder to work with the terminfo reader.
+       + modify terminfo reader to accept "b64:" format using RFC-3548 in
+         as well as RFC-4648 url/filename-safe format.
+       + modify terminfo reader to accept "hex:" format as generated by
+         "infocmp -0qQ1" (cf: 20150905).
+       + adjust authors comment to reflect drop below 1% for SV.
+
+20170128
+       + minor comment-fixes to help automate links to bug-urls -TD
+       + add dvtm, dvtm-256color -TD
+       + add settings corresponding to xterm-keys option to tmux entry to
+         reflect upcoming change to make that option "on" by default
+         (patch by Nicholas Marriott).
+       + uncancel Ms in tmux entry (Harry Gindi, Nicholas Marriott).
+       + add dumb-emacs-ansi -TD
+
+20170121
+       + improve discussion of early history of tput program.
+       + incorporate A_COLOR mask into COLOR_PAIR(), in case user application
+         provides an out-of-range pair number (report by Elijah Stone).
+       + clarify description in tput manual page regarding support for
+         termcap names (prompted by FreeBSD #214709).
+       + remove a restriction in tput's support for termcap names which
+         omitted capabilities normally not shown in termcap translations
+         (cf: 990123).
+       + modify configure script for clang as used on FreeBSD, to work around
+         clang's differences in exit codes vs gcc.
+
+20170114
+       + improve discussion of early history of tset/reset programs.
+       + clarify in manual pages that the optional verbose option level is
+         available only when ncurses is configured for tracing.
+       + amend change from 20161231 to avoid writing traces to the standard
+         error after initializing the trace feature using the environment
+         variable.
+
+20170107
+       + amend changes for tput to reset tty modes to "sane" if the program
+         is run as "reset", like tset.  Likewise, ensure that tset sends
+         either reset- or init-strings.
+       + improve manual page descriptions of tput init/reset and tset/reset,
+         to make it easier to see how they are similar and different.
+       + move a static result from key_name() to _nc_globals
+       + modify _nc_get_screensize to allow for use_env() and use_tioctl()
+         state to be per-screen when sp-funcs are configured, better matching
+         the behavior when using the term-driver configuration.
+       + improve cross-references in manual pages for often used functions
+       + move SCREEN field for use_tioctl() data before the ncursesw fields,
+         and limit that to the sp-funcs configuration to improve termlib
+         compatibility (cf:  20120714).
+       + correct order of initialization for traces in use_env() and
+         use_tioctl() versus first trace calls.
+
+20161231
+       + fix errata for ncurses-howto (report by Damien Ruscoe).
+       + fix a few places in configure/build scripts where DESTDIR and rpath
+         were combined (report by Thomas Klausner).
+       + merge current st description (report by Harry Gindi) -TD
+       + modify flash capability for linux and wyse entries to put the delay
+         between the reverse/normal escapes rather than after -TD
+       + modify program tabs to pass the actual tty file descriptor to
+         setupterm rather than the standard output, making padding work
+         consistently.
+       + explain in clear's manual page that it writes to stdout.
+       + add special case for verbose debugging traces of command-line
+         utilities which write to stderr (cf: 20161126).
+       + remove a trace with literal escapes from skip_DECSCNM(), added in
+         20161203.
+       + update config.guess, config.sub from
+               http://git.savannah.gnu.org/cgit/config.git
+
+20161224
+       + correct parmeters for copywin call in _nc_Synchronize_Attributes()
+         (patch by Leon Winter).
+       + improve color-handling section in terminfo manual page (prompted by
+         patch by Mihail Konev).
+       + modify programs clear, tput and tset to pass the actual tty file
+         descriptor to setupterm rather than the standard output, making
+         padding work.
+
+20161217
+       + add tput-colorcube demo script.
+       + add -r and -s options to tput-initc demo, to match usage in xterm.
+       + flush the standard output in _nc_flush for the case where SP is zero,
+         e.g., when called via putp.  This fixes a scenario where "tput flash"
+         did not work after changes in 20130112.
+
+20161210
+       + add configure script option --disable-wattr-macros for use in cases
+         where one wants to use the same headers for ncurses5/ncurses6
+         development, by suppressing the wattr* macros which differ due to
+         the introduction of extended colors (prompted by comments in
+         Debian #230990, Redhat #1270534).
+       + add test/tput-initc to demonstrate tput used to initialize palette
+         from a data file.
+       + modify test/xterm*.dat to use the newer color4/color12 values.
+
+20161203
+       + improve discussion of field validation in form_driver.3x manual page.
+       + update curs_trace.3x manual page.
+
+20161126
+       + modify linux-16color to not mask dim, standout or reverse with the
+         ncv capability -TD
+       + add 0.1sec mandatory delay to flash capabilities using the VT100
+         reverse-video control -TD
+       + omit selection of ISO-8859-1 for G0 in enacs capability from linux2.6
+         entry, to avoid conflict with the user-defined mapping.  The reset
+         feature will use ISO-8859-1 in any case (Mikulas Patocka).
+       + improve check in tic for delays by also warning about beep/flash
+         when a delay is not embedded, or if those use the VT100 reverse
+         video escape without using a delay.
+       + minor fix for syntax-check of delays from 20161119 changes.
+       + modify trace() to avoid overwriting existing file (report by Maor
+         Shwartz).
+
+20161119
+       + add check in tic for some syntax errors of delays, as well as use of
+         proportional delays for non-line capabilities.
+       + document history of the clear program and the E3 extension, prompted
+         by various discussions including
+         http://unix.stackexchange.com/questions/87469/clearing-the-old-scrollback-buffer
+
+20161112
+       + improve -W option in tic/infocmp:
+         + correct order of size-adjustments in wrapped lines
+         + if -f option splits line, do not further split it with -W
+         + begin a new line when adding "use=" after a wrapped line
+
+20161105
+       + fix typo in man/terminfo.tail (Alain Williams).
+       + correct program-name in adacurses6-config.1 manual page.
+
+20161029
+       + add new function "unfocus_current_field" (Leon Winter)
+
+20161022
+       + modify tset -w (and tput reset) to update the program's copy of the
+         screensize if it was already set in the system, to improve tabstop
+         setting which relies upon knowing the actual screensize.
+       + add functionality of tset -w to tput, like the "-c" feature this is
+         not optional in tput.
+       + add "clear" as a possible link/alias to tput.
+       + improve tput's check for being called as "init" or "reset" to allow
+         for transformed names.
+       + split-out the "clear" function from progs/clear.c, share with
+         tput to get the same behavior, e.g., the E3 extension.
+
+20161015
+       + amend internal use of tputs to consistently use the number of lines
+         affected, e.g., for insert/delete character operations.  While
+         merging terminfo source early in 1995, several descriptions used the
+         "*" proportional delay for these operations, prompting a change in
+         doupdate.
+       + regenerate llib-* files.
+       + regenerate HTML manpages.
+       + fix several formatting issues with manual pages.
+
+20161008
+       + adjust size in infocmp/tic to work with strlcpy.
+       + fix configure script to record when strlcat is found on OpenBSD.
+       + build-fix for "recent" OpenBSD vs baudrate.
+
+20161001
+       + add -W option to tic/infocmp to force long strings to wrap.  This is
+         in addition to the -w option which attempts to fit capabilities into
+         a given line-length.
+       + add linux-m1 minitel entries (patch by Alexandre Montaron).
+       + correct rs2 string for vt100-nam -TD
+
+20160924
+       + modify _nc_tic_expand to escape comma if it immediately follows a
+         percent sign, to work with minitel change.
+       + updated minitel and viewdata descriptions (Alexandre Montaron).
+
+20160917
+       + build-fix for gnat6, which unhelpfully attempts to compile C files.
+       + fix typo in 20160910 changes (Debian #837892, patch by Sven Joachim).
+
+20160910
+       + trim dead code ifdef'd with HIDE_EINTR since 970830 (discussion with
+         Leon Winter).
+       + trim some obsolete/incorrect wording about EINTR from wgetch manual
+         page (patch by Leon Winter).
+       + really correct 20100515 change (patch by Rich Coe).
+       + add "--enable-string-hacks" option to test/configure
+       + completed string-hacks for "sprintf", etc., including test-programs.
+       + make "--enable-string-hacks" work with Debian by checking for the
+         "bsd" library and its associated "<bsd/string.h>" header.
+
+20160903
+       + correct 20100515 change for weak signals versus sigprocmask (report
+         by Rich Coe).
+       + modify misc/Makefile.in to work around OpenBSD "make" which unlike
+         all other versions of "make" does not recognize continuation lines
+         of comments.
+       + amend the last change to CF_C_ENV_FLAGS to move only the
+         preprocessor, optimization and warning flags to CPPFLAGS and CFLAGS,
+         leaving the residue in CC.  That happens to work for gcc's various
+         "model" options, but may require tuning for other compilers (report
+         by Sven Joachim).
+
+20160827
+       + add "v" menu entry to test/ncurses.c to show baudrate and other
+         values.
+       + add "newer" baudrate symbols from Linux and FreeBSD to progs/tset.c,
+         lib_baudrate.c
+       + modify CF_XOPEN_SOURCE macro:
+         + add "uclinux" to case for "linux" (patch by Yann E. Morin)
+         + modify _GNU_SOURCE for cygwin headers, tested with cygwin 2.3, 2.5
+           (patch by Corinna Vinschen, from changes to tin).
+       + improve CF_CC_ENV_FLAGS macro to allow for compiler wrappers such
+         as "ccache" (report by Enrico Scholz).
+       + update config.guess, config.sub from
+               http://git.savannah.gnu.org/cgit/config.git
+
+20160820
+       + update tput manual page to reflect changes to manipulate terminal
+         modes by sharing functions with tset.
+       + add the terminal-mode parts of "reset" (aka tset) to the "tput reset"
+         command, making the two almost the same except for window-size.
+       + adapt logic used in dialog "--keep-tite" option for test/filter.c as
+         "-a" option.  When set, test/filter attempts to suppress the
+         alternate screen.
+       + correct a typo in interix entry -TD
+
+20160813
+       + add a dependency upon generated-sources in Ada95/src/Makefile.in to
+         handle a case of "configure && make install".
+       + trim trailing blanks from include/Caps*, to work around a problem
+         in sed (Debian #818067).
+
+20160806
+       + improve CF_GNU_SOURCE configure macro to optionally define
+         _DEFAULT_SOURCE work around a nuisance in recent glibc releases.
+       + move the terminfo-specific parts of tput's "reset" function into
+         the shared reset_cmd.c, making the two forms of reset use the same
+         strings.
+       + split-out the terminal initialization functions from tset as
+         progs/reset_cmd.c, as part of changes to merge the reset-feature
+         with tput.
+
+20160730
+       + change tset's initialization to allow it to get settings from the
+         standard input as well as /dev/tty, to be more effective when
+         output or error are redirected.
+       + improve discussion of history and portability for tset/reset/tput
+         manual pages.
+
+20160723
+       + improve error message from tset/reset when both stderr/stdout are
+         redirected to a file or pipe.
+       + improve organization of curs_attr.3x, curs_color.3x
+
+20160709
+       + work around Debian's antique/unmaintained version of mawk when
+         building link_test.
+       + improve test/list_keys.c, showing ncurses's convention of modifiers
+         for special keys, based on xterm.
+
+20160702
+       + improve test/list_keys.c, using $TERM if no parameters areg given.
+
+20160625
+       + build-fixes for ncurses "test_progs" rule.
+       + amend change to CF_CC_ENV_FLAGS in 20160521 to make multilib build
+         work (report by Sven Joachim).
+
+20160618
+       + build-fixes for ncurses-examples with NetBSD curses.
+       + improve test/list_keys.c, fixing column-widths and sorting the list
+         to make it more readable.
+
+20160611
+       + revise fix for Debian #805618 (report by Vlado Potisk, cf: 20151128).
+       + modify test/ncurses.c a/A screens to make exiting on an escape
+         character depend on the start of keypad and timeout modes, to allow
+         better testing of function-keys.
+       + modify rs1 for xterm-16color, xterm-88color and xterm-256color to
+         reset palette using "oc" string as in linux -TD
+       + use ANSI reply for u8 in xterm-new, to reflect vt220-style responses
+         that could be returned -TD
+       + added a few capabilities fixed in recent vte -TD
+
+20160604
+       + correct logic for -f option in test/demo_terminfo.c
+       + add test/list_keys.c
+
+20160528
+       + further workaround for PIE/PIC breakage which causes gpm to not link.
+       + fix most cppcheck warnings, mostly style, in ncurses library.
+
+20160521
+       + improved manual page description of tset/reset versus window-size.
+       + fixes to work with a slightly broken compiler configuration which
+         cannot compile "Hello World!" without adding compiler options
+         (report by Ola x Nilsson):
+         + pass appropriate compiler options to the CF_PROG_CC_C_O macro.
+         + when separating compiler and options in CF_CC_ENV_FLAGS, ensure
+           that all options are split-off into CFLAGS or CPPFLAGS
+         + restore some -I options removed in 20140726 because they appeared
+           to be redundant.  In fact, they are needed for a compiler that
+           cannot combine -c and -o options.
+
 20160514
        + regenerate HTML manpages.
        + improve manual pages for wgetch and wget_wch to point out that they
@@ -10948,7 +11450,7 @@ it is not possible to add this information.
          (SVr4) curses, which doesn't use 'const' in its prototypes.
        + modify ifdef's in test/hashtest.c and test/view.c to compile with
          Solaris curses.
-       + modify _tracedump() to pad pad colors & attrs lines to match change
+       + modify _tracedump() to pad colors & attrs lines to match change
          in 970101 showing first/last changes.
        + corrected location of terminating null on dynamically allocated forms
          fields (patch by Per Foreby).