From 87154b424ea0f67c2965d00e861ddfb134082d94 Mon Sep 17 00:00:00 2001 From: "Thomas E. Dickey" Date: Sun, 20 Feb 2022 02:01:54 +0000 Subject: [PATCH] ncurses 6.3 - patch 20220219 + expanded description in man/resizeterm.3x + additional workaround for ImageMagick in test/picsmap.c --- NEWS | 6 ++- VERSION | 2 +- dist.mk | 4 +- doc/html/man/adacurses6-config.1.html | 2 +- doc/html/man/captoinfo.1m.html | 2 +- doc/html/man/clear.1.html | 2 +- doc/html/man/form.3x.html | 2 +- doc/html/man/infocmp.1m.html | 2 +- doc/html/man/infotocap.1m.html | 2 +- doc/html/man/menu.3x.html | 2 +- doc/html/man/ncurses.3x.html | 2 +- doc/html/man/ncurses6-config.1.html | 2 +- doc/html/man/panel.3x.html | 2 +- doc/html/man/resizeterm.3x.html | 67 ++++++++++++++++++++------- doc/html/man/tabs.1.html | 2 +- doc/html/man/terminfo.5.html | 2 +- doc/html/man/tic.1m.html | 2 +- doc/html/man/toe.1m.html | 2 +- doc/html/man/tput.1.html | 2 +- doc/html/man/tset.1.html | 2 +- man/manhtml.aliases | 5 +- man/resizeterm.3x | 60 +++++++++++++++++++----- package/debian-mingw/changelog | 4 +- package/debian-mingw64/changelog | 4 +- package/debian/changelog | 4 +- package/mingw-ncurses.nsi | 4 +- package/mingw-ncurses.spec | 2 +- package/ncurses.spec | 2 +- package/ncursest.spec | 2 +- test/picsmap.c | 30 +++++++----- 30 files changed, 156 insertions(+), 72 deletions(-) diff --git a/NEWS b/NEWS index bbb46b23..fdcd6760 100644 --- a/NEWS +++ b/NEWS @@ -26,7 +26,7 @@ -- sale, use or other dealings in this Software without prior written -- -- authorization. -- ------------------------------------------------------------------------------- --- $Id: NEWS,v 1.3778 2022/02/12 20:15:29 tom Exp $ +-- $Id: NEWS,v 1.3780 2022/02/20 00:40:32 tom Exp $ ------------------------------------------------------------------------------- This is a log of changes that ncurses has gone through since Zeyd started @@ -46,6 +46,10 @@ 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. +20220219 + + expanded description in man/resizeterm.3x + + additional workaround for ImageMagick in test/picsmap.c + 20220212 + improve font-formatting in other manpages, for consistency. + correct/improve font-formatting in curs_wgetch.3x (patch by Benno diff --git a/VERSION b/VERSION index e6418ad6..a18db848 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -5:0:10 6.3 20220212 +5:0:10 6.3 20220219 diff --git a/dist.mk b/dist.mk index 9d3414c7..daffca71 100644 --- 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.1466 2022/02/12 15:31:08 tom Exp $ +# $Id: dist.mk,v 1.1467 2022/02/19 12:13:47 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 = 3 -NCURSES_PATCH = 20220212 +NCURSES_PATCH = 20220219 # 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/man/adacurses6-config.1.html b/doc/html/man/adacurses6-config.1.html index fd9596a6..54d42cec 100644 --- a/doc/html/man/adacurses6-config.1.html +++ b/doc/html/man/adacurses6-config.1.html @@ -126,7 +126,7 @@

SEE ALSO

        curses(3x)
 
-       This describes ncurses version 6.3 (patch 20220212).
+       This describes ncurses version 6.3 (patch 20220219).
 
 
 
diff --git a/doc/html/man/captoinfo.1m.html b/doc/html/man/captoinfo.1m.html
index 59bca6c2..6def79d9 100644
--- a/doc/html/man/captoinfo.1m.html
+++ b/doc/html/man/captoinfo.1m.html
@@ -199,7 +199,7 @@
 

SEE ALSO

        infocmp(1m), curses(3x), terminfo(5)
 
-       This describes ncurses version 6.3 (patch 20220212).
+       This describes ncurses version 6.3 (patch 20220219).
 
 
 

AUTHOR

diff --git a/doc/html/man/clear.1.html b/doc/html/man/clear.1.html
index a659b18f..ec1981b9 100644
--- a/doc/html/man/clear.1.html
+++ b/doc/html/man/clear.1.html
@@ -150,7 +150,7 @@
 

SEE ALSO

        tput(1), terminfo(5), xterm(1).
 
-       This describes ncurses version 6.3 (patch 20220212).
+       This describes ncurses version 6.3 (patch 20220219).
 
 
 
diff --git a/doc/html/man/form.3x.html b/doc/html/man/form.3x.html
index 02942dca..13448278 100644
--- a/doc/html/man/form.3x.html
+++ b/doc/html/man/form.3x.html
@@ -248,7 +248,7 @@
        curses(3x) and related pages whose names  begin  "form_"  for  detailed
        descriptions of the entry points.
 
-       This describes ncurses version 6.3 (patch 20220212).
+       This describes ncurses version 6.3 (patch 20220219).
 
 
 
diff --git a/doc/html/man/infocmp.1m.html b/doc/html/man/infocmp.1m.html
index b4c63e83..bddcc60d 100644
--- a/doc/html/man/infocmp.1m.html
+++ b/doc/html/man/infocmp.1m.html
@@ -514,7 +514,7 @@
 
        https://invisible-island.net/ncurses/tctest.html
 
-       This describes ncurses version 6.3 (patch 20220212).
+       This describes ncurses version 6.3 (patch 20220219).
 
 
 

AUTHOR

diff --git a/doc/html/man/infotocap.1m.html b/doc/html/man/infotocap.1m.html
index 6f2bb8a8..9c9e434f 100644
--- a/doc/html/man/infotocap.1m.html
+++ b/doc/html/man/infotocap.1m.html
@@ -91,7 +91,7 @@
 

SEE ALSO

        infocmp(1m), tic(1m), curses(3x), terminfo(5)
 
-       This describes ncurses version 6.3 (patch 20220212).
+       This describes ncurses version 6.3 (patch 20220219).
 
 
 

AUTHOR

diff --git a/doc/html/man/menu.3x.html b/doc/html/man/menu.3x.html
index 92c694d0..2e098219 100644
--- a/doc/html/man/menu.3x.html
+++ b/doc/html/man/menu.3x.html
@@ -223,7 +223,7 @@
        curses(3x) and related pages whose names  begin  "menu_"  for  detailed
        descriptions of the entry points.
 
-       This describes ncurses version 6.3 (patch 20220212).
+       This describes ncurses version 6.3 (patch 20220219).
 
 
 
diff --git a/doc/html/man/ncurses.3x.html b/doc/html/man/ncurses.3x.html
index a7f13302..17afb0d2 100644
--- a/doc/html/man/ncurses.3x.html
+++ b/doc/html/man/ncurses.3x.html
@@ -60,7 +60,7 @@
        method of updating  character  screens  with  reasonable  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 6.3 (patch 20220212).
+       This describes ncurses version 6.3 (patch 20220219).
 
        The  ncurses  library emulates the curses library of System V Release 4
        UNIX, and XPG4 (X/Open Portability Guide) curses  (also  known  as  XSI
diff --git a/doc/html/man/ncurses6-config.1.html b/doc/html/man/ncurses6-config.1.html
index c7354ee5..d2d90e1a 100644
--- a/doc/html/man/ncurses6-config.1.html
+++ b/doc/html/man/ncurses6-config.1.html
@@ -113,7 +113,7 @@
 

SEE ALSO

        curses(3x)
 
-       This describes ncurses version 6.3 (patch 20220212).
+       This describes ncurses version 6.3 (patch 20220219).
 
 
 
diff --git a/doc/html/man/panel.3x.html b/doc/html/man/panel.3x.html
index 4de975b5..e02e5a7a 100644
--- a/doc/html/man/panel.3x.html
+++ b/doc/html/man/panel.3x.html
@@ -281,7 +281,7 @@
 

SEE ALSO

        curses(3x), curs_variables(3x),
 
-       This describes ncurses version 6.3 (patch 20220212).
+       This describes ncurses version 6.3 (patch 20220219).
 
 
 

AUTHOR

diff --git a/doc/html/man/resizeterm.3x.html b/doc/html/man/resizeterm.3x.html
index d190848e..ebf6c55c 100644
--- a/doc/html/man/resizeterm.3x.html
+++ b/doc/html/man/resizeterm.3x.html
@@ -28,7 +28,7 @@
   * authorization.                                                           *
   ****************************************************************************
   * Author: Thomas E. Dickey 1996-on
-  * @Id: resizeterm.3x,v 1.31 2022/02/12 20:07:29 tom Exp @
+  * @Id: resizeterm.3x,v 1.32 2022/02/20 00:32:18 tom Exp @
 -->
 
 
@@ -63,28 +63,60 @@
 

DESCRIPTION

        This is an extension to the curses library.  It provides callers with a
        hook  into  the  ncurses  data  to resize windows, primarily for use by
-       programs running in an X Window terminal (e.g., xterm).
+       programs running in  an  X  Window  terminal  (e.g.,  xterm)  when  the
+       terminal's screen size is changed by the user:
 
+       o   Curses  windows  cannot extend outside the screen.  If the terminal
+           is shrunk, curses windows must be shrunk to fit.
+
+       o   If the terminal is stretched, rows and/or columns can be  added  to
+           existing  windows.   The  added  cells  should  match  the  current
+           attributes of the windows.
+
+       If the calling program has not set up a handler for  SIGWINCH  when  it
+       initializes  ncurses  (e.g.,  using  initscr(3x)  or newterm(3x)), then
+       ncurses sets a handler for SIGWINCH which notifies the library  when  a
+       window-size   event   has   occurred.   The  library  checks  for  this
+       notification
+
+       o   when reading input data,
+
+       o   when implicitly resuming program mode (e.g., between endwin(3x) and
+           wrefresh(3x)), and
+
+       o   when explicitly resuming program mode in restartterm(3x).
+
+       When the library has found that the terminal's window-size has changed,
+       it calls resizeterm to update its data structures.
+
+       An application which establishes its  own  SIGWINCH  handler  can  call
+       resizeterm,  but  in  that case, the library will not see SIGWINCH, and
+       proper layout will rely upon the application.
+
+
+

FUNCTIONS

 
 

resizeterm

-       The function resizeterm resizes the standard and current windows to the
-       specified  dimensions,  and  adjusts other bookkeeping data used by the
-       ncurses library that record the window dimensions such as the LINES and
-       COLS variables.
+       The function resizeterm resizes the standard and current windows (i.e.,
+       stdscr  and  curscr)  to  the  specified  dimensions, and adjusts other
+       bookkeeping data used by the ncurses library  that  record  the  window
+       dimensions such as the LINES and COLS variables.
 
 
 

resize_term

-       Most  of the work is done by the inner function resize_term.  The outer
-       function resizeterm adds bookkeeping for the SIGWINCH handler, as  well
-       as repainting the soft-key area (see slk_touch(3x)).
+       Most  of  the  work  for  resizeterm  is  done  by  the  inner function
+       resize_term.  The outer function resizeterm adds  bookkeeping  for  the
+       SIGWINCH  handler,  as  well  as  repainting  the  soft-key  area  (see
+       slk_touch(3x)).
+
+       The resize_term function attempts to resize all  windows.   This  helps
+       with simple applications.  However:
 
-       When  resizing  the windows, resize_term blank-fills the areas that are
-       extended.  The calling application should  fill  in  these  areas  with
-       appropriate data.
+       o   It is not possible to automatically resize pads.
 
-       The  resize_term function attempts to resize all windows.  However, due
-       to the calling convention of pads, it is not possible to  resize  these
-       without additional interaction with the application.
+       o   Applications  which  have  complicated  layouts  should  check  for
+           KEY_RESIZE returned from wgetch, and  adjust  their  layout,  e.g.,
+           using wresize and mvwin, or by recreating the windows.
 
        When  resizing  windows,  resize_term  recursively  adjusts subwindows,
        keeping them within the updated parent window's limits.  If a top-level
@@ -116,7 +148,7 @@
 
        o   on receipt of a SIGWINCH, the handler sets a flag
 
-       o   which is tested in wgetch(3x) and doupdate,
+       o   which is tested in wgetch(3x), doupdate(3x) and restartterm(3x),
 
        o   in turn, calling the resizeterm function,
 
@@ -166,7 +198,8 @@
 

SEE ALSO

        infocmp(1m), tset(1), curses(3x), terminfo(5).
 
-       This describes ncurses version 6.3 (patch 20220212).
+       This describes ncurses version 6.3 (patch 20220219).
 
 
 
diff --git a/doc/html/man/terminfo.5.html b/doc/html/man/terminfo.5.html
index 405adc89..31cfa819 100644
--- a/doc/html/man/terminfo.5.html
+++ b/doc/html/man/terminfo.5.html
@@ -106,7 +106,7 @@
        have, by specifying how to perform screen operations, and by specifying
        padding requirements and initialization sequences.
 
-       This manual describes ncurses version 6.3 (patch 20220212).
+       This manual describes ncurses version 6.3 (patch 20220219).
 
 
 

Terminfo Entry Syntax

diff --git a/doc/html/man/tic.1m.html b/doc/html/man/tic.1m.html
index 3b4d16f7..e62002e4 100644
--- a/doc/html/man/tic.1m.html
+++ b/doc/html/man/tic.1m.html
@@ -461,7 +461,7 @@
        captoinfo(1m),   infocmp(1m),   infotocap(1m),   toe(1m),   curses(3x),
        term(5).  terminfo(5).  user_caps(5).
 
-       This describes ncurses version 6.3 (patch 20220212).
+       This describes ncurses version 6.3 (patch 20220219).
 
 
 

AUTHOR

diff --git a/doc/html/man/toe.1m.html b/doc/html/man/toe.1m.html
index 3c446449..ef828092 100644
--- a/doc/html/man/toe.1m.html
+++ b/doc/html/man/toe.1m.html
@@ -171,7 +171,7 @@
        captoinfo(1m),   infocmp(1m),   infotocap(1m),   tic(1m),   curses(3x),
        terminfo(5).
 
-       This describes ncurses version 6.3 (patch 20220212).
+       This describes ncurses version 6.3 (patch 20220219).
 
 
 
diff --git a/doc/html/man/tput.1.html b/doc/html/man/tput.1.html
index 5c13290c..a27c6efa 100644
--- a/doc/html/man/tput.1.html
+++ b/doc/html/man/tput.1.html
@@ -545,7 +545,7 @@
 

SEE ALSO

        clear(1), stty(1), tabs(1), tset(1), curs_termcap(3x), terminfo(5).
 
-       This describes ncurses version 6.3 (patch 20220212).
+       This describes ncurses version 6.3 (patch 20220219).
 
 
 
diff --git a/doc/html/man/tset.1.html b/doc/html/man/tset.1.html
index b1c84bf4..50edca1e 100644
--- a/doc/html/man/tset.1.html
+++ b/doc/html/man/tset.1.html
@@ -391,7 +391,7 @@
        csh(1),   sh(1),   stty(1),   curs_terminfo(3x),  tty(4),  terminfo(5),
        ttys(5), environ(7)
 
-       This describes ncurses version 6.3 (patch 20220212).
+       This describes ncurses version 6.3 (patch 20220219).
 
 
 
diff --git a/man/manhtml.aliases b/man/manhtml.aliases
index a9f18ca7..9f33e273 100644
--- a/man/manhtml.aliases
+++ b/man/manhtml.aliases
@@ -1,6 +1,6 @@
-# $Id: manhtml.aliases,v 1.19 2020/12/12 14:45:55 tom Exp $
+# $Id: manhtml.aliases,v 1.20 2022/02/20 00:39:41 tom Exp $
 #***************************************************************************
-# Copyright 2019,2020 Thomas E. Dickey                                     *
+# Copyright 2019-2020,2022 Thomas E. Dickey                                *
 # Copyright 2013,2017 Free Software Foundation, Inc.                       *
 #                                                                          *
 # Permission is hereby granted, free of charge, to any person obtaining a  *
@@ -50,6 +50,7 @@ mvwin(3X)		curs_window(3X)
 newterm(3X)		curs_initscr(3X)
 refresh(3X)		curs_refresh(3X)
 reset_shell_mode(3X)	curs_kernel(3X)
+restartterm(3X)		curs_terminfo(3X)
 set_term(3X)		curs_initscr(3X)
 setcchar(3X)		curs_getcchar(3X)
 setupterm(3X)		curs_terminfo(3X)
diff --git a/man/resizeterm.3x b/man/resizeterm.3x
index fed95a1a..37094d80 100644
--- a/man/resizeterm.3x
+++ b/man/resizeterm.3x
@@ -29,7 +29,7 @@
 .\"
 .\" Author: Thomas E. Dickey 1996-on
 .\"
-.\" $Id: resizeterm.3x,v 1.31 2022/02/12 20:07:29 tom Exp $
+.\" $Id: resizeterm.3x,v 1.32 2022/02/20 00:32:18 tom Exp $
 .TH resizeterm 3X ""
 .de bP
 .ie n  .IP \(bu 4
@@ -51,28 +51,63 @@
 .PP
 This is an extension to the curses library.
 It provides callers with a hook into the \fBncurses\fP data to resize windows,
-primarily for use by programs running in an X Window terminal (e.g., xterm).
+primarily for use by programs running in an X Window terminal (e.g., xterm)
+when the terminal's screen size is changed by the user:
+.bP
+Curses windows cannot extend outside the screen.
+If the terminal is shrunk, curses windows must be shrunk to fit.
+.bP
+If the terminal is stretched,
+rows and/or columns can be added to existing windows.
+The added cells should match the current attributes of the windows.
+.PP
+If the calling program has not set up a handler for \fBSIGWINCH\fP
+when it initializes \fBncurses\fP
+(e.g., using \fBinitscr\fP(3X) or \fBnewterm\fP(3X)),
+then \fBncurses\fP sets a handler for \fBSIGWINCH\fP which notifies
+the library when a window-size event has occurred.
+The library checks for this notification
+.bP
+when reading input data,
+.bP
+when implicitly resuming program mode
+(e.g., between \fBendwin\fP(3X) and \fBwrefresh\fP(3X)),
+and
+.bP
+when explicitly resuming program mode in \fBrestartterm\fP(3X).
+.PP
+When the library has found that the terminal's window-size has
+changed, it calls \fBresizeterm\fP to update its data structures.
+.PP
+An application which establishes its own \fBSIGWINCH\fP handler
+can call \fBresizeterm\fP, but in that case, the library will not
+see \fBSIGWINCH\fP, and proper layout will rely upon the application.
+.SH FUNCTIONS
 .SS resizeterm
 .PP
 The function \fBresizeterm\fP resizes the standard and current windows
+(i.e., \fBstdscr\fP and \fBcurscr\fP)
 to the specified dimensions, and adjusts other bookkeeping data used by
 the \fBncurses\fP library that record the window dimensions
 such as the \fBLINES\fP and \fBCOLS\fP variables.
 .SS resize_term
 .PP
-Most of the work is done by the inner function \fBresize_term\fP.
+Most of the work for \fBresizeterm\fP is
+done by the inner function \fBresize_term\fP.
 The outer function \fBresizeterm\fP adds bookkeeping
 for the \fBSIGWINCH\fP handler,
 as well as repainting the soft-key area (see \fBslk_touch\fP(3X)).
 .PP
-When resizing the windows,
-\fBresize_term\fP blank-fills the areas that are extended.
-The calling application should fill in these areas with appropriate data.
-.PP
 The \fBresize_term\fP function attempts to resize all windows.
-However, due to the calling convention of pads,
-it is not possible to resize these
-without additional interaction with the application.
+This helps with simple applications.
+However:
+.bP
+It is not possible to automatically resize pads.
+.bP
+Applications which have complicated layouts should check for
+\fBKEY_RESIZE\fP returned from \fBwgetch\fP,
+and adjust their layout, e.g., using \fBwresize\fP and \fBmvwin\fP,
+or by recreating the windows.
 .PP
 When resizing windows, \fBresize_term\fP recursively adjusts subwindows,
 keeping them within the updated parent window's limits.
@@ -101,7 +136,10 @@ If ncurses is configured to supply its own \fBSIGWINCH\fP handler,
 .bP
 on receipt of a \fBSIGWINCH\fP, the handler sets a flag
 .bP
-which is tested in \fBwgetch\fP(3X) and \fBdoupdate\fP,
+which is tested in
+\fBwgetch\fP(3X),
+\fBdoupdate\fP(3X) and
+\fBrestartterm\fP(3X),
 .bP
 in turn, calling the \fBresizeterm\fP function,
 .bP
diff --git a/package/debian-mingw/changelog b/package/debian-mingw/changelog
index 2475252e..7add8c30 100644
--- a/package/debian-mingw/changelog
+++ b/package/debian-mingw/changelog
@@ -1,8 +1,8 @@
-ncurses6 (6.3+20220212) unstable; urgency=low
+ncurses6 (6.3+20220219) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey   Sat, 12 Feb 2022 10:31:08 -0500
+ -- Thomas E. Dickey   Sat, 19 Feb 2022 07:13:47 -0500
 
 ncurses6 (5.9-20131005) unstable; urgency=low
 
diff --git a/package/debian-mingw64/changelog b/package/debian-mingw64/changelog
index 2475252e..7add8c30 100644
--- a/package/debian-mingw64/changelog
+++ b/package/debian-mingw64/changelog
@@ -1,8 +1,8 @@
-ncurses6 (6.3+20220212) unstable; urgency=low
+ncurses6 (6.3+20220219) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey   Sat, 12 Feb 2022 10:31:08 -0500
+ -- Thomas E. Dickey   Sat, 19 Feb 2022 07:13:47 -0500
 
 ncurses6 (5.9-20131005) unstable; urgency=low
 
diff --git a/package/debian/changelog b/package/debian/changelog
index d4eb2727..61628fe4 100644
--- a/package/debian/changelog
+++ b/package/debian/changelog
@@ -1,8 +1,8 @@
-ncurses6 (6.3+20220212) unstable; urgency=low
+ncurses6 (6.3+20220219) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey   Sat, 12 Feb 2022 10:31:08 -0500
+ -- Thomas E. Dickey   Sat, 19 Feb 2022 07:13:47 -0500
 
 ncurses6 (5.9-20120608) unstable; urgency=low
 
diff --git a/package/mingw-ncurses.nsi b/package/mingw-ncurses.nsi
index 2801deae..04d35fc3 100644
--- a/package/mingw-ncurses.nsi
+++ b/package/mingw-ncurses.nsi
@@ -1,4 +1,4 @@
-; $Id: mingw-ncurses.nsi,v 1.506 2022/02/12 15:31:08 tom Exp $
+; $Id: mingw-ncurses.nsi,v 1.507 2022/02/19 12:13:47 tom Exp $
 
 ; TODO add examples
 ; TODO bump ABI to 6
@@ -10,7 +10,7 @@
 !define VERSION_MAJOR "6"
 !define VERSION_MINOR "3"
 !define VERSION_YYYY  "2022"
-!define VERSION_MMDD  "0212"
+!define VERSION_MMDD  "0219"
 !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}
 
 !define MY_ABI   "5"
diff --git a/package/mingw-ncurses.spec b/package/mingw-ncurses.spec
index 30be10c0..7403aed9 100644
--- a/package/mingw-ncurses.spec
+++ b/package/mingw-ncurses.spec
@@ -3,7 +3,7 @@
 Summary: shared libraries for terminal handling
 Name: mingw32-ncurses6
 Version: 6.3
-Release: 20220212
+Release: 20220219
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
diff --git a/package/ncurses.spec b/package/ncurses.spec
index 8dfd7350..71d106db 100644
--- a/package/ncurses.spec
+++ b/package/ncurses.spec
@@ -1,7 +1,7 @@
 Summary: shared libraries for terminal handling
 Name: ncurses6
 Version: 6.3
-Release: 20220212
+Release: 20220219
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
diff --git a/package/ncursest.spec b/package/ncursest.spec
index 0e111bee..f707476a 100644
--- a/package/ncursest.spec
+++ b/package/ncursest.spec
@@ -1,7 +1,7 @@
 Summary: Curses library with POSIX thread support.
 Name: ncursest6
 Version: 6.3
-Release: 20220212
+Release: 20220219
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
diff --git a/test/picsmap.c b/test/picsmap.c
index 09b46ee9..1702639e 100644
--- a/test/picsmap.c
+++ b/test/picsmap.c
@@ -27,7 +27,7 @@
  * authorization.                                                           *
  ****************************************************************************/
 /*
- * $Id: picsmap.c,v 1.142 2022/02/06 01:44:34 tom Exp $
+ * $Id: picsmap.c,v 1.144 2022/02/19 21:30:04 tom Exp $
  *
  * Author: Thomas E. Dickey
  *
@@ -1383,7 +1383,6 @@ parse_img(const char *filename)
 		char *t;
 		char *s = t = strchr(buffer, '#');
 		bool matched = FALSE;
-		bool blurred = FALSE;
 
 		if (s != 0) {
 		    /* after the "#RGB", there are differences - just ignore */
@@ -1391,6 +1390,7 @@ parse_img(const char *filename)
 			++s;
 		    *++s = '\0';
 		}
+
 		if (match_c(buffer,
 			    "%d,%d: (%d,%d,%d,%d) #%x ",
 			    &col, &row,
@@ -1401,25 +1401,33 @@ parse_img(const char *filename)
 				   "%d,%d: (%f%%,%f%%,%f%%,%d) #%x ",
 				   &col, &row,
 				   &rf, &gf, &bf, &nocolor,
+				   &check) ||
+			   match_c(buffer,
+				   "%d,%d: (%f%%,%f%%,%f%%) #%x ",
+				   &col, &row,
+				   &rf, &gf, &bf,
 				   &check)) {
 		    matched = TRUE;
-		    blurred = TRUE;	/* 6.9.11 scaling is broken... */
+
 #define fp_fix(n) (int) (MaxRGB * (((n) > 100.0 ? 100.0 : (n)) / 100.0))
+
 		    r = fp_fix(rf);
 		    g = fp_fix(gf);
 		    b = fp_fix(bf);
 		}
+		if ((s - t) > 8)	/* 6 hex digits vs 8 */
+		    check /= 256;
 		if (matched) {
 		    int which, c;
+		    int want_r = (check >> 16) & 0xff;
+		    int want_g = (check >> 8) & 0xff;
+		    int want_b = (check >> 0) & 0xff;
+
+#define fp_err(tst,ref) ((tst > MaxRGB) || ((tst - ref)*(tst - ref)) > 4)
 
-		    if ((s - t) > 8)	/* 6 hex digits vs 8 */
-			check /= 256;
-		    if (blurred) {
-			/* revisit this when ImageMagick is fixed */
-		    } else if (r > MaxRGB ||
-			       g > MaxRGB ||
-			       b > MaxRGB ||
-			       check != (unsigned) ((r << 16) | (g << 8) | b)) {
+		    if (fp_err(r, want_r) ||
+			fp_err(g, want_g) ||
+			fp_err(b, want_b)) {
 			okay = FALSE;
 			break;
 		    }
-- 
2.45.0