-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: NEWS,v 1.2448 2015/06/27 23:12:23 tom Exp $
+-- $Id: NEWS,v 1.2451 2015/07/04 21:01:57 tom Exp $
-------------------------------------------------------------------------------
This is a log of changes that ncurses has gone through since Zeyd started
Changes through 1.9.9e did not credit all contributions;
it is not possible to add this information.
+20150704
+ + fix a few problems reported by Coverity.
+ + fix comparison against "/usr/include" in misc/gen-pkgconfig.in
+ (report by Daiki Ueno, Debian #790548, cf: 20141213).
+
20150627
+ modify configure script to remove deprecated ABI 5 symbols when
building ABI 6.
-5:0:9 6.0 20150627
+5:0:9 6.0 20150704
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: dist.mk,v 1.1057 2015/06/26 08:39:24 tom Exp $
+# $Id: dist.mk,v 1.1058 2015/07/03 23:28:48 tom Exp $
# Makefile for creating ncurses distributions.
#
# This only needs to be used directly as a makefile by developers, but
# These define the major/minor/patch versions of ncurses.
NCURSES_MAJOR = 6
NCURSES_MINOR = 0
-NCURSES_PATCH = 20150627
+NCURSES_PATCH = 20150704
# We don't append the patch to the version, since this only applies to releases
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
#!@SHELL@
-# $Id: gen-pkgconfig.in,v 1.28 2015/05/16 20:04:42 tom Exp $
+# $Id: gen-pkgconfig.in,v 1.29 2015/07/04 20:37:01 tom Exp $
##############################################################################
# Copyright (c) 2009-2014,2015 Free Software Foundation, Inc. #
# #
CFLAGS="@PKG_CFLAGS@"
if test "$includedir" != "/usr/include" ; then
- includetop=`echo "$includedir" | sed -e 's,/include/[^/]*$,/include/,'`
+ includetop=`echo "$includedir" | sed -e 's,/include/[^/]*$,/include,'`
test "$includetop" = "/usr/include" && includetop="$includedir"
- if test "x$includetop" != "$includedir"
+ if test "x$includetop" != "x$includedir"
then
CFLAGS="$CFLAGS -I${includetop}"
fi
/****************************************************************************
- * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2014,2015 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 *
#define CUR SP_TERMTYPE
#endif
-MODULE_ID("$Id: lib_mouse.c,v 1.165 2014/11/01 12:27:59 tom Exp $")
+MODULE_ID("$Id: lib_mouse.c,v 1.166 2015/07/05 00:28:27 tom Exp $")
#include <tic.h>
int b = data.params[0];
int b3 = 1 + (b & 3);
- result = TRUE;
eventp->id = NORMAL_EVENT;
if (data.final == 'M') {
(void) handle_wheel(sp, eventp, b, (b & 64) == 64);
#define CUR SP_TERMTYPE
#endif
-MODULE_ID("$Id: lib_screen.c,v 1.75 2015/04/18 21:58:03 tom Exp $")
+MODULE_ID("$Id: lib_screen.c,v 1.77 2015/07/04 22:54:14 tom Exp $")
#define MAX_SIZE 0x3fff /* 16k is big enough for a window or pad */
result = 0;
break;
}
+ result = buffer;
}
ch = fgetc(fp);
if (ch == EOF)
while (source[0] == MARKER && source[1] == APPEND) {
source += 2;
source = decode_char(source, &value);
- if (append++ < CCHARW_MAX) {
+ if (++append < CCHARW_MAX) {
chars[append] = (wchar_t) value;
}
}
#endif
#undef CUR
-MODULE_ID("$Id: lib_twait.c,v 1.69 2015/05/02 22:23:16 tom Exp $")
+MODULE_ID("$Id: lib_twait.c,v 1.70 2015/07/04 21:01:02 tom Exp $")
static long
_nc_gettime(TimeType * t0, int first)
#ifdef NCURSES_WGETCH_EVENTS
if ((mode & TW_EVENT) && evl) {
- fds = typeMalloc(struct pollfd, MIN_FDS + evl->count);
+ if (fds == fd_list)
+ fds = typeMalloc(struct pollfd, MIN_FDS + evl->count);
if (fds == 0)
return TW_NONE;
}
-ncurses6 (6.0+20150627) unstable; urgency=low
+ncurses6 (6.0+20150704) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Fri, 26 Jun 2015 04:39:24 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net> Fri, 03 Jul 2015 19:28:49 -0400
ncurses6 (5.9-20131005) unstable; urgency=low
-ncurses6 (6.0+20150627) unstable; urgency=low
+ncurses6 (6.0+20150704) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Fri, 26 Jun 2015 04:39:24 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net> Fri, 03 Jul 2015 19:28:49 -0400
ncurses6 (5.9-20131005) unstable; urgency=low
-ncurses6 (6.0+20150627) unstable; urgency=low
+ncurses6 (6.0+20150704) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Fri, 26 Jun 2015 04:39:24 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net> Fri, 03 Jul 2015 19:28:48 -0400
ncurses6 (5.9-20120608) unstable; urgency=low
-; $Id: mingw-ncurses.nsi,v 1.110 2015/06/26 08:39:24 tom Exp $\r
+; $Id: mingw-ncurses.nsi,v 1.111 2015/07/03 23:28:48 tom Exp $\r
\r
; TODO add examples\r
; TODO bump ABI to 6\r
!define VERSION_MAJOR "6"\r
!define VERSION_MINOR "0"\r
!define VERSION_YYYY "2015"\r
-!define VERSION_MMDD "0627"\r
+!define VERSION_MMDD "0704"\r
!define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}\r
\r
!define MY_ABI "5"\r
Summary: shared libraries for terminal handling
Name: mingw32-ncurses6
Version: 6.0
-Release: 20150627
+Release: 20150704
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz
Summary: shared libraries for terminal handling
Name: ncurses6
Version: 6.0
-Release: 20150627
+Release: 20150704
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz
#!/bin/sh
-# $Id: MKtermsort.sh,v 1.10 2008/07/12 20:22:54 tom Exp $
+# $Id: MKtermsort.sh,v 1.11 2015/07/04 23:59:54 tom Exp $
#
# MKtermsort.sh -- generate indirection vectors for the various sort methods
#
##############################################################################
-# Copyright (c) 1998-2003,2008 Free Software Foundation, Inc. #
+# Copyright (c) 1998-2008,2015 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 "Software"), #
echo "static const bool bool_from_termcap[] = {";
$AWK <$DATA '
-$3 == "bool" && substr($7, 1, 1) == "-" {print "\tFALSE,\t/* ", $2, " */";}
-$3 == "bool" && substr($7, 1, 1) == "Y" {print "\tTRUE,\t/* ", $2, " */";}
+BEGIN { count = 0; valid = 0; }
+$3 == "bool" && substr($7, 1, 1) == "-" {print "\tFALSE,\t/* ", $2, " */"; count++; }
+$3 == "bool" && substr($7, 1, 1) == "Y" {print "\tTRUE,\t/* ", $2, " */"; valid = count++; }
+END { printf "#define OK_bool_from_termcap %d\n", valid; }
'
echo "};";
echo "";
echo "static const bool num_from_termcap[] = {";
$AWK <$DATA '
-$3 == "num" && substr($7, 1, 1) == "-" {print "\tFALSE,\t/* ", $2, " */";}
-$3 == "num" && substr($7, 1, 1) == "Y" {print "\tTRUE,\t/* ", $2, " */";}
+BEGIN { count = 0; valid = 0; }
+$3 == "num" && substr($7, 1, 1) == "-" {print "\tFALSE,\t/* ", $2, " */"; count++; }
+$3 == "num" && substr($7, 1, 1) == "Y" {print "\tTRUE,\t/* ", $2, " */"; valid = count++; }
+END { printf "#define OK_num_from_termcap %d\n", valid; }
'
echo "};";
echo "";
echo "static const bool str_from_termcap[] = {";
$AWK <$DATA '
-$3 == "str" && substr($7, 1, 1) == "-" {print "\tFALSE,\t/* ", $2, " */";}
-$3 == "str" && substr($7, 1, 1) == "Y" {print "\tTRUE,\t/* ", $2, " */";}
+BEGIN { count = 0; valid = 0; }
+$3 == "str" && substr($7, 1, 1) == "-" {print "\tFALSE,\t/* ", $2, " */"; count++; }
+$3 == "str" && substr($7, 1, 1) == "Y" {print "\tTRUE,\t/* ", $2, " */"; valid = count++; }
+END { printf "#define OK_str_from_termcap %d\n", valid; }
'
echo "};";
echo "";
#include "termsort.c" /* this C file is generated */
#include <parametrized.h> /* so is this */
-MODULE_ID("$Id: dump_entry.c,v 1.115 2015/05/27 00:57:40 tom Exp $")
+MODULE_ID("$Id: dump_entry.c,v 1.117 2015/07/05 00:01:04 tom Exp $")
#define INDENT 8
#define DISCARD(string) string = ABSENT_STRING
#endif
#define NameTrans(check,result) \
- if (OkIndex(np->nte_index, check) \
+ if ((np->nte_index <= OK_ ## check) \
&& check[np->nte_index]) \
return (result[np->nte_index])
NCURSES_CONST char *
nametrans(const char *name)
-/* translate a capability name from termcap to terminfo */
+/* translate a capability name to termcap from terminfo */
{
const struct name_table_entry *np;
- if ((np = _nc_find_entry(name, _nc_get_hash_table(0))) != 0)
+ if ((np = _nc_find_entry(name, _nc_get_hash_table(0))) != 0) {
switch (np->nte_type) {
case BOOLEAN:
NameTrans(bool_from_termcap, boolcodes);
NameTrans(str_from_termcap, strcodes);
break;
}
+ }
return (0);
}
trimmed_sgr0 = _nc_trim_sgr0(tterm);
if (strcmp(capability, trimmed_sgr0))
capability = trimmed_sgr0;
+ else
+ free(trimmed_sgr0);
set_attributes = my_sgr;
}
#define USE_LIBTINFO
#include <progs.priv.h>
-MODULE_ID("$Id: tabs.c,v 1.36 2015/04/18 22:20:21 James.Clarke Exp $")
+MODULE_ID("$Id: tabs.c,v 1.37 2015/07/04 21:14:42 tom Exp $")
static void usage(void) GCC_NORETURN;
*append = result;
}
+ free(copied);
return result;
}
#include <parametrized.h>
#include <transform.h>
-MODULE_ID("$Id: tic.c,v 1.210 2015/05/27 00:58:18 tom Exp $")
+MODULE_ID("$Id: tic.c,v 1.211 2015/07/04 21:12:41 tom Exp $")
#define STDIN_NAME "<stdin>"
("will trim sgr0\n\toriginal sgr0=%s\n\ttrimmed sgr0=%s",
_nc_visbuf2(1, exit_attribute_mode),
_nc_visbuf2(2, check_sgr0)));
- free(check_sgr0);
} else {
DEBUG(2,
("will not trim sgr0\n\toriginal sgr0=%s",
_nc_visbuf(exit_attribute_mode)));
}
}
+ if (check_sgr0 != exit_attribute_mode) {
+ free(check_sgr0);
+ }
}
#ifdef TRACE
show_where(2);
/****************************************************************************
- * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2014,2015 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 *
* modified 10-18-89 for curses (jrl)
* 10-18-89 added signal handling
*
- * $Id: gdc.c,v 1.42 2014/08/09 22:28:42 tom Exp $
+ * $Id: gdc.c,v 1.44 2015/07/04 21:28:28 tom Exp $
*/
#include <test.priv.h>
/* this depends on the detailed format of ctime(3) */
(void) strncpy(buf, ctime(&now), (size_t) 30);
- (void) strcpy(buf + 10, buf + 19);
+ {
+ char *d2 = buf + 10;
+ char *s2 = buf + 19;
+ while ((*d2++ = *s2++) != '\0') ;
+ }
MvAddStr(16, 30, buf);
move(6, 0);
* wrs(5/28/93) -- modified to be consistent (perform identically) with either
* PDCurses or under Unix System V, R4
*
- * $Id: testcurs.c,v 1.49 2014/07/27 00:25:14 tom Exp $
+ * $Id: testcurs.c,v 1.50 2015/07/05 00:11:10 tom Exp $
*/
#include <test.priv.h>
"%d %[][a-zA-Z]s",
"%d %[^0-9]"
};
- const char *format = fmt[(unsigned) repeat % SIZEOF(fmt)];
+ char *format = strdup(fmt[(unsigned) repeat % SIZEOF(fmt)]);
wclear(win);
MvWAddStr(win, 3, 2, "The window should have moved");
noraw();
num = 0;
*buffer = 0;
- answered = mvwscanw(win, 7, 6, strdup(format), &num, buffer);
+ answered = mvwscanw(win, 7, 6, format, &num, buffer);
MvWPrintw(win, 8, 6,
"String: %s Number: %d (%d values read)",
buffer, num, answered);
Continue(win);
++repeat;
+ free(format);
} while (answered > 0);
}