ncurses 5.9 - patch 20140823

+ fix special case where double-width character overwrites a single-
  width character in the first column (report by Egmont Koblinger,
  cf: 20050813).
This commit is contained in:
Thomas E. Dickey 2014-08-24 00:42:29 +00:00
parent 0948e2c7ac
commit 17d9459c7a
9 changed files with 38 additions and 21 deletions

7
NEWS
View File

@ -25,7 +25,7 @@
-- sale, use or other dealings in this Software without prior written -- -- sale, use or other dealings in this Software without prior written --
-- authorization. -- -- authorization. --
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
-- $Id: NEWS,v 1.2260 2014/08/16 23:28:26 tom Exp $ -- $Id: NEWS,v 1.2262 2014/08/23 19:28:39 tom Exp $
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
This is a log of changes that ncurses has gone through since Zeyd started This is a log of changes that ncurses has gone through since Zeyd started
@ -45,6 +45,11 @@ See the AUTHORS file for the corresponding full names.
Changes through 1.9.9e did not credit all contributions; Changes through 1.9.9e did not credit all contributions;
it is not possible to add this information. it is not possible to add this information.
20140823
+ fix special case where double-width character overwrites a single-
width character in the first column (report by Egmont Koblinger,
cf: 20050813).
20140816 20140816
+ fix colors in ncurses 'b' test which did not work after changing + fix colors in ncurses 'b' test which did not work after changing
it to put the test-strings in subwindows (cf: 20140705). it to put the test-strings in subwindows (cf: 20140705).

View File

@ -25,7 +25,7 @@
# use or other dealings in this Software without prior written # # use or other dealings in this Software without prior written #
# authorization. # # authorization. #
############################################################################## ##############################################################################
# $Id: dist.mk,v 1.1001 2014/08/14 07:59:48 tom Exp $ # $Id: dist.mk,v 1.1002 2014/08/23 16:35:54 tom Exp $
# Makefile for creating ncurses distributions. # Makefile for creating ncurses distributions.
# #
# This only needs to be used directly as a makefile by developers, but # This only needs to be used directly as a makefile by developers, but
@ -37,7 +37,7 @@ SHELL = /bin/sh
# These define the major/minor/patch versions of ncurses. # These define the major/minor/patch versions of ncurses.
NCURSES_MAJOR = 5 NCURSES_MAJOR = 5
NCURSES_MINOR = 9 NCURSES_MINOR = 9
NCURSES_PATCH = 20140816 NCURSES_PATCH = 20140823
# We don't append the patch to the version, since this only applies to releases # We don't append the patch to the version, since this only applies to releases
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR) VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)

View File

@ -82,7 +82,7 @@
#include <ctype.h> #include <ctype.h>
MODULE_ID("$Id: tty_update.c,v 1.279 2014/07/12 23:16:30 tom Exp $") MODULE_ID("$Id: tty_update.c,v 1.280 2014/08/23 19:25:18 tom Exp $")
/* /*
* This define controls the line-breakout optimization. Every once in a * This define controls the line-breakout optimization. Every once in a
@ -628,6 +628,7 @@ PutRange(NCURSES_SP_DCLx
int first, int last) int first, int last)
{ {
int i, j, same; int i, j, same;
int rc;
TR(TRACE_CHARPUT, ("PutRange(%p, %p, %p, %d, %d, %d)", TR(TRACE_CHARPUT, ("PutRange(%p, %p, %p, %d, %d, %d)",
(void *) SP_PARM, (void *) SP_PARM,
@ -655,9 +656,11 @@ PutRange(NCURSES_SP_DCLx
* Always return 1 for the next GoTo() after a PutRange() if we found * Always return 1 for the next GoTo() after a PutRange() if we found
* identical characters at end of interval * identical characters at end of interval
*/ */
return (same == 0 ? i : 1); rc = (same == 0 ? i : 1);
} else {
rc = EmitRange(NCURSES_SP_ARGx ntext + first, last - first + 1);
} }
return EmitRange(NCURSES_SP_ARGx ntext + first, last - first + 1); return rc;
} }
/* leave unbracketed here so 'indent' works */ /* leave unbracketed here so 'indent' works */
@ -1492,9 +1495,17 @@ TransformLine(NCURSES_SP_DCLx int const lineno)
if (oLastChar < nLastChar) { if (oLastChar < nLastChar) {
int m = max(nLastNonblank, oLastNonblank); int m = max(nLastNonblank, oLastNonblank);
#if USE_WIDEC_SUPPORT #if USE_WIDEC_SUPPORT
while (isWidecExt(newLine[n + 1]) && n) { if (n) {
--n; while (isWidecExt(newLine[n + 1]) && n) {
--oLastChar; --n;
--oLastChar; /* increase cost */
}
} else if (n >= firstChar &&
isWidecBase(newLine[n])) {
while (isWidecExt(newLine[n + 1])) {
++n;
++oLastChar; /* decrease cost */
}
} }
#endif #endif
GoTo(NCURSES_SP_ARGx lineno, n + 1); GoTo(NCURSES_SP_ARGx lineno, n + 1);
@ -1514,8 +1525,9 @@ TransformLine(NCURSES_SP_DCLx int const lineno)
if (DelCharCost(SP_PARM, oLastChar - nLastChar) if (DelCharCost(SP_PARM, oLastChar - nLastChar)
> SP_PARM->_el_cost + nLastNonblank - (n + 1)) { > SP_PARM->_el_cost + nLastNonblank - (n + 1)) {
if (PutRange(NCURSES_SP_ARGx oldLine, newLine, lineno, if (PutRange(NCURSES_SP_ARGx oldLine, newLine, lineno,
n + 1, nLastNonblank)) n + 1, nLastNonblank)) {
GoTo(NCURSES_SP_ARGx lineno, nLastNonblank + 1); GoTo(NCURSES_SP_ARGx lineno, nLastNonblank + 1);
}
ClrToEOL(NCURSES_SP_ARGx blank, FALSE); ClrToEOL(NCURSES_SP_ARGx blank, FALSE);
} else { } else {
/* /*

View File

@ -1,8 +1,8 @@
ncurses6 (5.9-20140816) unstable; urgency=low ncurses6 (5.9-20140823) unstable; urgency=low
* latest weekly patch * latest weekly patch
-- Thomas E. Dickey <dickey@invisible-island.net> Thu, 14 Aug 2014 03:59:48 -0400 -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 23 Aug 2014 12:35:54 -0400
ncurses6 (5.9-20131005) unstable; urgency=low ncurses6 (5.9-20131005) unstable; urgency=low

View File

@ -1,8 +1,8 @@
ncurses6 (5.9-20140816) unstable; urgency=low ncurses6 (5.9-20140823) unstable; urgency=low
* latest weekly patch * latest weekly patch
-- Thomas E. Dickey <dickey@invisible-island.net> Thu, 14 Aug 2014 03:59:48 -0400 -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 23 Aug 2014 12:35:54 -0400
ncurses6 (5.9-20131005) unstable; urgency=low ncurses6 (5.9-20131005) unstable; urgency=low

View File

@ -1,8 +1,8 @@
ncurses6 (5.9-20140816) unstable; urgency=low ncurses6 (5.9-20140823) unstable; urgency=low
* latest weekly patch * latest weekly patch
-- Thomas E. Dickey <dickey@invisible-island.net> Thu, 14 Aug 2014 03:59:48 -0400 -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 23 Aug 2014 12:35:54 -0400
ncurses6 (5.9-20120608) unstable; urgency=low ncurses6 (5.9-20120608) unstable; urgency=low

View File

@ -1,4 +1,4 @@
; $Id: mingw-ncurses.nsi,v 1.56 2014/08/14 07:59:48 tom Exp $ ; $Id: mingw-ncurses.nsi,v 1.57 2014/08/23 16:35:54 tom Exp $
; TODO add examples ; TODO add examples
; TODO bump ABI to 6 ; TODO bump ABI to 6
@ -10,7 +10,7 @@
!define VERSION_MAJOR "5" !define VERSION_MAJOR "5"
!define VERSION_MINOR "9" !define VERSION_MINOR "9"
!define VERSION_YYYY "2014" !define VERSION_YYYY "2014"
!define VERSION_MMDD "0816" !define VERSION_MMDD "0823"
!define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD} !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}
!define MY_ABI "5" !define MY_ABI "5"

View File

@ -3,7 +3,7 @@
Summary: shared libraries for terminal handling Summary: shared libraries for terminal handling
Name: mingw32-ncurses6 Name: mingw32-ncurses6
Version: 5.9 Version: 5.9
Release: 20140816 Release: 20140823
License: X11 License: X11
Group: Development/Libraries Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz Source: ncurses-%{version}-%{release}.tgz

View File

@ -1,7 +1,7 @@
Summary: shared libraries for terminal handling Summary: shared libraries for terminal handling
Name: ncurses6 Name: ncurses6
Version: 5.9 Version: 5.9
Release: 20140816 Release: 20140823
License: X11 License: X11
Group: Development/Libraries Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz Source: ncurses-%{version}-%{release}.tgz