]> ncurses.scripts.mit.edu Git - ncurses.git/commitdiff
ncurses 6.2 - patch 20201114
authorThomas E. Dickey <dickey@invisible-island.net>
Sun, 15 Nov 2020 01:01:04 +0000 (01:01 +0000)
committerThomas E. Dickey <dickey@invisible-island.net>
Sun, 15 Nov 2020 01:01:04 +0000 (01:01 +0000)
+ fix some compiler-warnings in experimental Windows-10 driver.
+ modify a check for parameters in terminfo capabilities to handle the
  special case where short extended capability strings were not
  converted from terminfo to termcap format.
+ modify CF_MIXEDCASE_FILENAMES macro, adding darwin as special case
  when cross-compiling (report by Eli Rykoff).

23 files changed:
Ada95/aclocal.m4
Ada95/configure
NEWS
VERSION
aclocal.m4
configure
dist.mk
include/win32_curses.h
ncurses/curses.priv.h
ncurses/tinfo/lib_win32con.c
ncurses/trace/lib_tracebits.c
package/debian-mingw/changelog
package/debian-mingw64/changelog
package/debian/changelog
package/mingw-ncurses.nsi
package/mingw-ncurses.spec
package/ncurses.spec
package/ncursest.spec
progs/dump_entry.c
progs/dump_entry.h
progs/tic.c
test/aclocal.m4
test/configure

index 3cecb0a552b5aa8ef58225962f2adf02b9b6a629..c80b7c88dbab756030e313fadcb91945f518696c 100644 (file)
@@ -29,7 +29,7 @@ dnl***************************************************************************
 dnl
 dnl Author: Thomas E. Dickey
 dnl
-dnl $Id: aclocal.m4,v 1.163 2020/10/31 20:04:06 tom Exp $
+dnl $Id: aclocal.m4,v 1.164 2020/11/14 15:25:46 tom Exp $
 dnl Macros used in NCURSES Ada95 auto-configuration script.
 dnl
 dnl These macros are maintained separately from NCURSES.  The copyright on
@@ -2489,7 +2489,7 @@ AC_SUBST(MAKE_UPPER_TAGS)
 AC_SUBST(MAKE_LOWER_TAGS)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_MIXEDCASE_FILENAMES version: 7 updated: 2015/04/12 15:39:00
+dnl CF_MIXEDCASE_FILENAMES version: 8 updated: 2020/11/14 10:12:15
 dnl ----------------------
 dnl Check if the file-system supports mixed-case filenames.  If we're able to
 dnl create a lowercase name and see it as uppercase, it doesn't support that.
@@ -2498,7 +2498,7 @@ AC_DEFUN([CF_MIXEDCASE_FILENAMES],
 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
 if test "$cross_compiling" = yes ; then
        case $target_alias in
-       (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*)
+       (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*|darwin*)
                cf_cv_mixedcase=no
                ;;
        (*)
index cc37f2ed6bbdeb6ac41439255597320f1430e72e..57096b16bb03445f9a767d2f225833798a160812 100755 (executable)
@@ -3201,7 +3201,7 @@ else
 
 if test "$cross_compiling" = yes ; then
        case $target_alias in
-       (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*)
+       (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*|darwin*)
                cf_cv_mixedcase=no
                ;;
        (*)
diff --git a/NEWS b/NEWS
index 1612696ec5798bbf1e2ac6f34c38b2d9f3ef1ead..d886d5213cbd0f564e4d431e93c6954fb3593f72 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -26,7 +26,7 @@
 -- sale, use or other dealings in this Software without prior written        --
 -- authorization.                                                            --
 -------------------------------------------------------------------------------
--- $Id: NEWS,v 1.3589 2020/11/07 23:52:28 tom Exp $
+-- $Id: NEWS,v 1.3593 2020/11/15 00:33:38 tom Exp $
 -------------------------------------------------------------------------------
 
 This is a log of changes that ncurses has gone through since Zeyd started
@@ -46,6 +46,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.
 
+20201114
+       + fix some compiler-warnings in experimental Windows-10 driver.
+       + modify a check for parameters in terminfo capabilities to handle the
+         special case where short extended capability strings were not
+         converted from terminfo to termcap format.
+       + modify CF_MIXEDCASE_FILENAMES macro, adding darwin as special case
+         when cross-compiling (report by Eli Rykoff).
+
 20201107
        + update kitty+common -TD
        + add putty+screen and putty-screen (suggested by Alexandre Montaron).
diff --git a/VERSION b/VERSION
index 446564fa71caa7f3909ee7da5153098bdaf29642..7652def53861f8430b0417cae7bdd0dc99433127 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-5:0:10 6.2     20201107
+5:0:10 6.2     20201114
index c4d5dbc51649d5cf6270262656425e33746dbc45..4505447f1eece60c4c2f7b826051ff49df6d6a68 100644 (file)
@@ -29,7 +29,7 @@ dnl***************************************************************************
 dnl
 dnl Author: Thomas E. Dickey 1995-on
 dnl
-dnl $Id: aclocal.m4,v 1.938 2020/10/31 19:51:56 tom Exp $
+dnl $Id: aclocal.m4,v 1.939 2020/11/14 15:25:03 tom Exp $
 dnl Macros used in NCURSES auto-configuration script.
 dnl
 dnl These macros are maintained separately from NCURSES.  The copyright on
@@ -5723,7 +5723,7 @@ ifelse($1,,[
 fi
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_MIXEDCASE_FILENAMES version: 7 updated: 2015/04/12 15:39:00
+dnl CF_MIXEDCASE_FILENAMES version: 8 updated: 2020/11/14 10:12:15
 dnl ----------------------
 dnl Check if the file-system supports mixed-case filenames.  If we're able to
 dnl create a lowercase name and see it as uppercase, it doesn't support that.
@@ -5732,7 +5732,7 @@ AC_DEFUN([CF_MIXEDCASE_FILENAMES],
 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
 if test "$cross_compiling" = yes ; then
        case $target_alias in
-       (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*)
+       (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*|darwin*)
                cf_cv_mixedcase=no
                ;;
        (*)
index 1954f0b984fb71c5cf3cfbf131df120fa8e7d786..ae6486d439c2aca187f34f8ddf009e72f231c5ce 100755 (executable)
--- a/configure
+++ b/configure
@@ -4170,7 +4170,7 @@ else
 
 if test "$cross_compiling" = yes ; then
        case $target_alias in
-       (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*)
+       (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*|darwin*)
                cf_cv_mixedcase=no
                ;;
        (*)
diff --git a/dist.mk b/dist.mk
index e9b845805237e3e3833f9350ebdf20662f009f46..44f3d61ade9e9c74c4890976f3ad4dac85b1c0af 100644 (file)
--- a/dist.mk
+++ b/dist.mk
@@ -26,7 +26,7 @@
 # use or other dealings in this Software without prior written               #
 # authorization.                                                             #
 ##############################################################################
-# $Id: dist.mk,v 1.1384 2020/11/07 12:57:22 tom Exp $
+# $Id: dist.mk,v 1.1385 2020/11/14 13:10:13 tom Exp $
 # Makefile for creating ncurses distributions.
 #
 # This only needs to be used directly as a makefile by developers, but
@@ -38,7 +38,7 @@ SHELL = /bin/sh
 # These define the major/minor/patch versions of ncurses.
 NCURSES_MAJOR = 6
 NCURSES_MINOR = 2
-NCURSES_PATCH = 20201107
+NCURSES_PATCH = 20201114
 
 # We don't append the patch to the version, since this only applies to releases
 VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
index b4937cd4d58a912d7f4f9c3d97465a39e5e08d61..5babf47d214a888faee68215345406c76c284e14 100644 (file)
@@ -31,7 +31,7 @@
  * Author: Juergen Pfeifer, 2008-on                                         * 
  ****************************************************************************/
 
-/* $Id: win32_curses.h,v 1.1 2020/08/14 21:57:01 juergen Exp $ */
+/* $Id: win32_curses.h,v 1.2 2020/11/14 23:52:46 tom Exp $ */
 
 /*
  * This is the interface we use on Windows to mimic the control of the settings
@@ -44,8 +44,8 @@
 
 struct winconmode
 {
-  unsigned int  dwFlagIn;
-  unsigned int  dwFlagOut;
+  unsigned long dwFlagIn;
+  unsigned long dwFlagOut;
 };
 
 extern NCURSES_EXPORT(void*) _nc_console_fd2handle(int fd);
index 621167f8120613f2bbecf71f57b81b18b2af3a45..a992bc9193f7650c9e8a6312d0ac6413d0aef45c 100644 (file)
@@ -35,7 +35,7 @@
  ****************************************************************************/
 
 /*
- * $Id: curses.priv.h,v 1.638 2020/09/12 17:58:55 tom Exp $
+ * $Id: curses.priv.h,v 1.639 2020/11/14 23:37:54 tom Exp $
  *
  *     curses.priv.h
  *
@@ -1860,7 +1860,7 @@ extern NCURSES_EXPORT(SCREEN *)         _nc_retrace_sp (SCREEN *);
 extern NCURSES_EXPORT(WINDOW *)         _nc_retrace_win (WINDOW *);
 extern NCURSES_EXPORT(attr_t)           _nc_retrace_attr_t (attr_t);
 extern NCURSES_EXPORT(char *)           _nc_retrace_ptr (char *);
-extern NCURSES_EXPORT(char *)           _nc_trace_ttymode(TTY *tty);
+extern NCURSES_EXPORT(char *)           _nc_trace_ttymode(const TTY *tty);
 extern NCURSES_EXPORT(char *)           _nc_varargs (const char *, va_list);
 extern NCURSES_EXPORT(chtype)           _nc_retrace_chtype (chtype);
 extern NCURSES_EXPORT(const char *)     _nc_altcharset_name(attr_t, chtype);
index e84f205145b0df8b0af3d7ca54ccad5fd506ea8b..67836d08efabd7ff22acda2f6b73f3ea7355149f 100644 (file)
@@ -38,7 +38,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_win32con.c,v 1.3 2020/10/10 19:07:10 tom Exp $")
+MODULE_ID("$Id: lib_win32con.c,v 1.4 2020/11/14 23:37:16 tom Exp $")
 
 #ifdef _NC_WINDOWS
 
@@ -890,7 +890,7 @@ _nc_console_twait(
                     T(("twait:err GetNumberOfConsoleInputEvents"));
                 }
                 if (isNoDelay && b) {
-                    T(("twait: Events Available: %d",nRead));
+                    T(("twait: Events Available: %ld", nRead));
                     if (nRead==0) {
                         code=0;
                         goto end;
@@ -899,7 +899,7 @@ _nc_console_twait(
                         INPUT_RECORD* pInpRec =
                             TypeAlloca(INPUT_RECORD,nRead);
                         if (pInpRec != NULL) {
-                            int i;
+                            DWORD i;
                             BOOL f;
                             memset(pInpRec,0,sizeof(INPUT_RECORD)*nRead);
                             f = PeekConsoleInput(hdl, pInpRec, nRead, &n);
@@ -936,11 +936,11 @@ _nc_console_twait(
                         switch (inp_rec.EventType) {
                         case KEY_EVENT:
                             if (mode & TW_INPUT) {
-                                T(("twait:event KEY_EVENT"));
                                 WORD vk =
                                     inp_rec.Event.KeyEvent.wVirtualKeyCode;
                                 char ch =
                                     inp_rec.Event.KeyEvent.uChar.AsciiChar;
+                                T(("twait:event KEY_EVENT"));
                                 T(("twait vk=%d, ch=%d, keydown=%d",
                                    vk,ch,inp_rec.Event.KeyEvent.bKeyDown));
                                 if (inp_rec.Event.KeyEvent.bKeyDown) {
index a760d13502b5c0729ef40008e84ccb6872dc1a49..4bc50f3b0857020eb0b7a8cef548b53423f7040c 100644 (file)
@@ -35,7 +35,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_tracebits.c,v 1.30 2020/09/05 22:54:47 tom Exp $")
+MODULE_ID("$Id: lib_tracebits.c,v 1.31 2020/11/14 23:38:11 tom Exp $")
 
 #if HAVE_SYS_TERMIO_H
 #include <sys/termio.h>                /* needed for ISC */
@@ -104,7 +104,7 @@ lookup_bits(char *buf, const BITNAMES * table, const char *label, unsigned int v
 }
 
 NCURSES_EXPORT(char *)
-_nc_trace_ttymode(TTY * tty)
+_nc_trace_ttymode(const TTY * tty)
 /* describe the state of the terminal control bits exactly */
 {
     char *buf;
index d643fe51b2274472378a1c9f7f915fcb628c6491..9cfe4e9abcf2881d46a8519d8f5da7d58fecfb08 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.2+20201107) unstable; urgency=low
+ncurses6 (6.2+20201114) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 07 Nov 2020 07:57:22 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 14 Nov 2020 08:10:13 -0500
 
 ncurses6 (5.9-20131005) unstable; urgency=low
 
index d643fe51b2274472378a1c9f7f915fcb628c6491..9cfe4e9abcf2881d46a8519d8f5da7d58fecfb08 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.2+20201107) unstable; urgency=low
+ncurses6 (6.2+20201114) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 07 Nov 2020 07:57:22 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 14 Nov 2020 08:10:13 -0500
 
 ncurses6 (5.9-20131005) unstable; urgency=low
 
index ab1a620f38ce3fea57afb90cc401e24743c05923..181a59dac4be78f26d22b45c3460bf9616e3d3a2 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.2+20201107) unstable; urgency=low
+ncurses6 (6.2+20201114) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 07 Nov 2020 07:57:22 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 14 Nov 2020 08:10:13 -0500
 
 ncurses6 (5.9-20120608) unstable; urgency=low
 
index 37171b838c652285160e797394bfcd7d1db37f56..d34114ed36eb839a7b308e6c9e0655b805e6467a 100644 (file)
@@ -1,4 +1,4 @@
-; $Id: mingw-ncurses.nsi,v 1.428 2020/11/07 12:57:22 tom Exp $\r
+; $Id: mingw-ncurses.nsi,v 1.429 2020/11/14 13:10:13 tom Exp $\r
 \r
 ; TODO add examples\r
 ; TODO bump ABI to 6\r
@@ -10,7 +10,7 @@
 !define VERSION_MAJOR "6"\r
 !define VERSION_MINOR "2"\r
 !define VERSION_YYYY  "2020"\r
-!define VERSION_MMDD  "1107"\r
+!define VERSION_MMDD  "1114"\r
 !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}\r
 \r
 !define MY_ABI   "5"\r
index 5e91f598fbbe81ed06da765c492f2508cbe489cf..ac116973642ba2d1d2649d8c869f5332013a3375 100644 (file)
@@ -3,7 +3,7 @@
 Summary: shared libraries for terminal handling
 Name: mingw32-ncurses6
 Version: 6.2
-Release: 20201107
+Release: 20201114
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
index 303a8c38fb8023cde4219ef47e928580be536142..3a26c35358361bbb88ffa5e36dfe362cf9bd850d 100644 (file)
@@ -1,7 +1,7 @@
 Summary: shared libraries for terminal handling
 Name: ncurses6
 Version: 6.2
-Release: 20201107
+Release: 20201114
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
index 7084f5b86a5721ba32ab6931a3486146374e1c97..3db6e75a387248fa1dec5091f8635f4b2fa81694 100644 (file)
@@ -1,7 +1,7 @@
 Summary: Curses library with POSIX thread support.
 Name: ncursest6
 Version: 6.2
-Release: 20201107
+Release: 20201114
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
index e084e0f0f541a507cba7aa71d75c36e059d18915..4d3bb14270259a75e088f3552791a0ad77c6bea9 100644 (file)
@@ -40,7 +40,7 @@
 #include "termsort.c"          /* this C file is generated */
 #include <parametrized.h>      /* so is this */
 
-MODULE_ID("$Id: dump_entry.c,v 1.179 2020/07/08 21:21:11 tom Exp $")
+MODULE_ID("$Id: dump_entry.c,v 1.180 2020/11/14 18:18:13 tom Exp $")
 
 #define DISCARD(string) string = ABSENT_STRING
 #define PRINTF (void) printf
@@ -747,7 +747,7 @@ leading_DYN(DYNBUF * buffer, const char *leading)
 }
 
 bool
-has_params(const char *src)
+has_params(const char *src, bool formatting)
 {
     bool result = FALSE;
     int len = (int) strlen(src);
@@ -765,7 +765,11 @@ has_params(const char *src)
        }
     }
     if (!ifthen) {
-       result = ((len > 50) && params);
+       if (formatting) {
+           result = ((len > 50) && params);
+       } else {
+           result = params;
+       }
     }
     return result;
 }
@@ -774,7 +778,7 @@ static char *
 fmt_complex(TERMTYPE2 *tterm, const char *capability, char *src, int level)
 {
     bool percent = FALSE;
-    bool params = has_params(src);
+    bool params = has_params(src, TRUE);
 
     while (*src != '\0') {
        switch (*src) {
@@ -801,7 +805,7 @@ fmt_complex(TERMTYPE2 *tterm, const char *capability, char *src, int level)
                    strncpy_DYN(&tmpbuf, "%", (size_t) 1);
                    strncpy_DYN(&tmpbuf, src, (size_t) 1);
                    src++;
-                   params = has_params(src);
+                   params = has_params(src, TRUE);
                    if (!params && *src != '\0' && *src != '%') {
                        strncpy_DYN(&tmpbuf, "\n", (size_t) 1);
                        indent_DYN(&tmpbuf, level + 1);
@@ -1110,7 +1114,7 @@ fmt_entry(TERMTYPE2 *tterm,
                              ? parametrized[i]
                              : ((*srccap == 'k')
                                 ? 0
-                                : has_params(srccap)));
+                                : has_params(srccap, FALSE)));
                char *cv = _nc_infotocap(name, srccap, params);
 
                if (cv == 0) {
index 984fee709551ea2e3cfcb7eea97c33a34b85911e..98551914cd63c9f9c3c42a225b0f6b894e4ca775 100644 (file)
@@ -34,7 +34,7 @@
  ****************************************************************************/
 
 /*
- * $Id: dump_entry.h,v 1.42 2020/02/02 23:34:34 tom Exp $
+ * $Id: dump_entry.h,v 1.43 2020/11/14 18:16:57 tom Exp $
  *
  * Dump control definitions and variables
  */
@@ -73,7 +73,7 @@ typedef int (*PredFunc) (PredType, PredIdx);
 typedef void (*PredHook) (PredType, PredIdx, const char *);
 
 extern NCURSES_CONST char *nametrans(const char *);
-extern bool has_params(const char *src);
+extern bool has_params(const char *, bool);
 extern int fmt_entry(TERMTYPE2 *, PredFunc, int, int, int, int);
 extern int show_entry(void);
 extern void compare_entry(PredHook, TERMTYPE2 *, bool);
index b74d1ce585e4b6373fc0064206083544eeafa5eb..c98cda606ff8c6b6dc18b99d1efd520e570f1063 100644 (file)
@@ -49,7 +49,7 @@
 #include <parametrized.h>
 #include <transform.h>
 
-MODULE_ID("$Id: tic.c,v 1.289 2020/10/31 22:15:55 tom Exp $")
+MODULE_ID("$Id: tic.c,v 1.290 2020/11/14 18:16:33 tom Exp $")
 
 #define STDIN_NAME "<stdin>"
 
@@ -2372,7 +2372,7 @@ check_infotocap(TERMTYPE2 *tp, int i, const char *value)
                  ? parametrized[i]
                  : ((*value == 'k')
                     ? 0
-                    : has_params(value)));
+                    : has_params(value, FALSE)));
     char *ti_value;
     char *tc_value;
     bool embedded;
index 813527050143cb3362a1fdbb346365f71cc1fff0..1d2d925bc6df4a71b8377f56d9b7ac078c294f30 100644 (file)
@@ -27,7 +27,7 @@ dnl sale, use or other dealings in this Software without prior written       *
 dnl authorization.                                                           *
 dnl***************************************************************************
 dnl
-dnl $Id: aclocal.m4,v 1.184 2020/10/31 20:05:07 tom Exp $
+dnl $Id: aclocal.m4,v 1.185 2020/11/14 15:26:19 tom Exp $
 dnl
 dnl Author: Thomas E. Dickey
 dnl
@@ -2339,7 +2339,7 @@ ifelse($1,,[
 fi
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_MIXEDCASE_FILENAMES version: 7 updated: 2015/04/12 15:39:00
+dnl CF_MIXEDCASE_FILENAMES version: 8 updated: 2020/11/14 10:12:15
 dnl ----------------------
 dnl Check if the file-system supports mixed-case filenames.  If we're able to
 dnl create a lowercase name and see it as uppercase, it doesn't support that.
@@ -2348,7 +2348,7 @@ AC_DEFUN([CF_MIXEDCASE_FILENAMES],
 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
 if test "$cross_compiling" = yes ; then
        case $target_alias in
-       (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*)
+       (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*|darwin*)
                cf_cv_mixedcase=no
                ;;
        (*)
index ef110bd81b978aa49504d777e10115f9340fbebf..fe15d9302727829891e07b6a347dec7c7c1e397f 100755 (executable)
@@ -2874,7 +2874,7 @@ else
 
 if test "$cross_compiling" = yes ; then
        case $target_alias in
-       (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*)
+       (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*|darwin*)
                cf_cv_mixedcase=no
                ;;
        (*)