ncurses 5.9 - patch 20120728
authorThomas E. Dickey <dickey@invisible-island.net>
Sun, 29 Jul 2012 00:02:59 +0000 (00:02 +0000)
committerThomas E. Dickey <dickey@invisible-island.net>
Sun, 29 Jul 2012 00:02:59 +0000 (00:02 +0000)
+ correct path for ncurses_mingw.h in include/headers, in case build
  is done outside source-tree (patch by Roumen Petrov).
+ modify some older xterm entries to align with xterm source -TD
+ separate "xterm-old" alias from "xterm-r6" -TD
+ add E3 extended capability to xterm-basic and putty -TD
+ parenthesize parameters of other macros in curses.h -TD
+ parenthesize parameter of COLOR_PAIR and PAIR_NUMBER in curses.h
  in case it happens to be a comma-expression, etc.  (patch by Nick
  Black).

NEWS
dist.mk
include/curses.h.in
include/curses.wide
include/headers
misc/terminfo.src
ncurses/tinfo/tinfo_driver.c
package/debian/changelog
package/ncurses.spec

diff --git a/NEWS b/NEWS
index 585aa61be00c5ed988bb3072ec5755037fd72c83..65d5c0c87e96e2fafe9969ffe725aafeb6529a43 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -25,7 +25,7 @@
 -- sale, use or other dealings in this Software without prior written        --
 -- authorization.                                                            --
 -------------------------------------------------------------------------------
--- $Id: NEWS,v 1.1931 2012/07/21 23:24:40 tom Exp $
+-- $Id: NEWS,v 1.1936 2012/07/29 00:02:10 tom Exp $
 -------------------------------------------------------------------------------
 
 This is a log of changes that ncurses has gone through since Zeyd started
@@ -45,6 +45,17 @@ 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.
 
+20120728
+       + correct path for ncurses_mingw.h in include/headers, in case build
+         is done outside source-tree (patch by Roumen Petrov).
+       + modify some older xterm entries to align with xterm source -TD
+       + separate "xterm-old" alias from "xterm-r6" -TD
+       + add E3 extended capability to xterm-basic and putty -TD
+       + parenthesize parameters of other macros in curses.h -TD
+       + parenthesize parameter of COLOR_PAIR and PAIR_NUMBER in curses.h
+         in case it happens to be a comma-expression, etc.  (patch by Nick
+         Black).
+
 20120721
        + improved form_request_by_name() and menu_request_by_name().
        + eliminate two fixed-size buffers in toe.c
diff --git a/dist.mk b/dist.mk
index abef7d87db532f1c8e44e96e8fb7afae559f359f..9478a44f8bcfeeb77fc7816010c01ff7b1938a27 100644 (file)
--- a/dist.mk
+++ b/dist.mk
@@ -25,7 +25,7 @@
 # use or other dealings in this Software without prior written               #
 # authorization.                                                             #
 ##############################################################################
-# $Id: dist.mk,v 1.883 2012/07/21 16:14:00 tom Exp $
+# $Id: dist.mk,v 1.884 2012/07/28 17:43:44 tom Exp $
 # Makefile for creating ncurses distributions.
 #
 # 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.
 NCURSES_MAJOR = 5
 NCURSES_MINOR = 9
-NCURSES_PATCH = 20120721
+NCURSES_PATCH = 20120728
 
 # We don't append the patch to the version, since this only applies to releases
 VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
index 73776bd5b9ca568686c1fdebeabfa9ca646cd9a7..526526a808becececdd0994266cff16bbd5b7c42 100644 (file)
@@ -32,7 +32,7 @@
  *     and: Thomas E. Dickey                        1996-on                 *
  ****************************************************************************/
 
-/* $Id: curses.h.in,v 1.230 2012/07/14 21:31:23 tom Exp $ */
+/* $Id: curses.h.in,v 1.232 2012/07/28 18:17:43 tom Exp $ */
 
 #ifndef __NCURSES_H
 #define __NCURSES_H
@@ -263,7 +263,7 @@ NCURSES_WRAPPED_VAR(chtype*, acs_map);
 extern NCURSES_EXPORT_VAR(chtype) acs_map[];
 #endif
 
-#define NCURSES_ACS(c) (acs_map[NCURSES_CAST(unsigned char,c)])
+#define NCURSES_ACS(c) (acs_map[NCURSES_CAST(unsigned char,(c))])
 
 /* VT100 symbols begin here */
 #define ACS_ULCORNER   NCURSES_ACS('l') /* upper left corner */
@@ -1099,7 +1099,7 @@ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_legacy_coding) (SCREEN*, int);     /*
  */
 
 #define wgetstr(w, s)          wgetnstr(w, s, -1)
-#define getnstr(s, n)          wgetnstr(stdscr, s, n)
+#define getnstr(s, n)          wgetnstr(stdscr, s, (n))
 
 #define setterm(term)          setupterm(term, 1, (int *)0)
 
@@ -1152,8 +1152,8 @@ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_legacy_coding) (SCREEN*, int);     /*
 
 #define box(win, v, h)         wborder(win, v, v, h, h, 0, 0, 0, 0)
 #define border(ls, rs, ts, bs, tl, tr, bl, br) wborder(stdscr, ls, rs, ts, bs, tl, tr, bl, br)
-#define hline(ch, n)           whline(stdscr, ch, n)
-#define vline(ch, n)           wvline(stdscr, ch, n)
+#define hline(ch, n)           whline(stdscr, ch, (n))
+#define vline(ch, n)           wvline(stdscr, ch, (n))
 
 #define winstr(w, s)           winnstr(w, s, -1)
 #define winchstr(w, s)         winchnstr(w, s, -1)
@@ -1169,55 +1169,55 @@ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_legacy_coding) (SCREEN*, int);   /*
 /*
  * These apply to the first 256 color pairs.
  */
-#define COLOR_PAIR(n)  NCURSES_BITS(n, 0)
-#define PAIR_NUMBER(a) (NCURSES_CAST(int,((NCURSES_CAST(unsigned long,a) & A_COLOR) >> NCURSES_ATTR_SHIFT)))
+#define COLOR_PAIR(n)  NCURSES_BITS((n), 0)
+#define PAIR_NUMBER(a) (NCURSES_CAST(int,((NCURSES_CAST(unsigned long,(a)) & A_COLOR) >> NCURSES_ATTR_SHIFT)))
 
 /*
  * pseudo functions for standard screen
  */
 
-#define addch(ch)              waddch(stdscr,ch)
-#define addchnstr(str,n)       waddchnstr(stdscr,str,n)
-#define addchstr(str)          waddchstr(stdscr,str)
-#define addnstr(str,n)         waddnstr(stdscr,str,n)
-#define addstr(str)            waddnstr(stdscr,str,-1)
-#define attroff(at)            wattroff(stdscr,at)
-#define attron(at)             wattron(stdscr,at)
-#define attrset(at)            wattrset(stdscr,at)
-#define attr_get(ap,cp,o)      wattr_get(stdscr,ap,cp,o)
-#define attr_off(a,o)          wattr_off(stdscr,a,o)
-#define attr_on(a,o)           wattr_on(stdscr,a,o)
-#define attr_set(a,c,o)                wattr_set(stdscr,a,c,o)
-#define bkgd(ch)               wbkgd(stdscr,ch)
-#define bkgdset(ch)            wbkgdset(stdscr,ch)
-#define chgat(n,a,c,o)         wchgat(stdscr,n,a,c,o)
+#define addch(ch)              waddch(stdscr,(ch))
+#define addchnstr(str,n)       waddchnstr(stdscr,(str),(n))
+#define addchstr(str)          waddchstr(stdscr,(str))
+#define addnstr(str,n)         waddnstr(stdscr,(str),(n))
+#define addstr(str)            waddnstr(stdscr,(str),-1)
+#define attroff(at)            wattroff(stdscr,(at))
+#define attron(at)             wattron(stdscr,(at))
+#define attrset(at)            wattrset(stdscr,(at))
+#define attr_get(ap,cp,o)      wattr_get(stdscr,(ap),(cp),(o))
+#define attr_off(a,o)          wattr_off(stdscr,(a),(o))
+#define attr_on(a,o)           wattr_on(stdscr,(a),(o))
+#define attr_set(a,c,o)                wattr_set(stdscr,(a),(c),(o))
+#define bkgd(ch)               wbkgd(stdscr,(ch))
+#define bkgdset(ch)            wbkgdset(stdscr,(ch))
+#define chgat(n,a,c,o)         wchgat(stdscr,(n),(a),(c),(o))
 #define clear()                        wclear(stdscr)
 #define clrtobot()             wclrtobot(stdscr)
 #define clrtoeol()             wclrtoeol(stdscr)
-#define color_set(c,o)         wcolor_set(stdscr,c,o)
+#define color_set(c,o)         wcolor_set(stdscr,(c),(o))
 #define delch()                        wdelch(stdscr)
 #define deleteln()             winsdelln(stdscr,-1)
-#define echochar(c)            wechochar(stdscr,c)
+#define echochar(c)            wechochar(stdscr,(c))
 #define erase()                        werase(stdscr)
 #define getch()                        wgetch(stdscr)
-#define getstr(str)            wgetstr(stdscr,str)
+#define getstr(str)            wgetstr(stdscr,(str))
 #define inch()                 winch(stdscr)
-#define inchnstr(s,n)          winchnstr(stdscr,s,n)
-#define inchstr(s)             winchstr(stdscr,s)
-#define innstr(s,n)            winnstr(stdscr,s,n)
-#define insch(c)               winsch(stdscr,c)
-#define insdelln(n)            winsdelln(stdscr,n)
+#define inchnstr(s,n)          winchnstr(stdscr,(s),(n))
+#define inchstr(s)             winchstr(stdscr,(s))
+#define innstr(s,n)            winnstr(stdscr,(s),(n))
+#define insch(c)               winsch(stdscr,(c))
+#define insdelln(n)            winsdelln(stdscr,(n))
 #define insertln()             winsdelln(stdscr,1)
-#define insnstr(s,n)           winsnstr(stdscr,s,n)
-#define insstr(s)              winsstr(stdscr,s)
-#define instr(s)               winstr(stdscr,s)
-#define move(y,x)              wmove(stdscr,y,x)
+#define insnstr(s,n)           winsnstr(stdscr,(s),(n))
+#define insstr(s)              winsstr(stdscr,(s))
+#define instr(s)               winstr(stdscr,(s))
+#define move(y,x)              wmove(stdscr,(y),(x))
 #define refresh()              wrefresh(stdscr)
-#define scrl(n)                        wscrl(stdscr,n)
-#define setscrreg(t,b)         wsetscrreg(stdscr,t,b)
+#define scrl(n)                        wscrl(stdscr,(n))
+#define setscrreg(t,b)         wsetscrreg(stdscr,(t),(b))
 #define standend()             wstandend(stdscr)
 #define standout()             wstandout(stdscr)
-#define timeout(delay)         wtimeout(stdscr,delay)
+#define timeout(delay)         wtimeout(stdscr,(delay))
 #define wdeleteln(win)         winsdelln(win,-1)
 #define winsertln(win)         winsdelln(win,1)
 
@@ -1225,47 +1225,47 @@ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_legacy_coding) (SCREEN*, int);   /*
  * mv functions
  */
 
-#define mvwaddch(win,y,x,ch)           (wmove(win,y,x) == ERR ? ERR : waddch(win,ch))
-#define mvwaddchnstr(win,y,x,str,n)    (wmove(win,y,x) == ERR ? ERR : waddchnstr(win,str,n))
-#define mvwaddchstr(win,y,x,str)       (wmove(win,y,x) == ERR ? ERR : waddchnstr(win,str,-1))
-#define mvwaddnstr(win,y,x,str,n)      (wmove(win,y,x) == ERR ? ERR : waddnstr(win,str,n))
-#define mvwaddstr(win,y,x,str)         (wmove(win,y,x) == ERR ? ERR : waddnstr(win,str,-1))
-#define mvwdelch(win,y,x)              (wmove(win,y,x) == ERR ? ERR : wdelch(win))
-#define mvwchgat(win,y,x,n,a,c,o)      (wmove(win,y,x) == ERR ? ERR : wchgat(win,n,a,c,o))
-#define mvwgetch(win,y,x)              (wmove(win,y,x) == ERR ? ERR : wgetch(win))
-#define mvwgetnstr(win,y,x,str,n)      (wmove(win,y,x) == ERR ? ERR : wgetnstr(win,str,n))
-#define mvwgetstr(win,y,x,str)         (wmove(win,y,x) == ERR ? ERR : wgetstr(win,str))
-#define mvwhline(win,y,x,c,n)          (wmove(win,y,x) == ERR ? ERR : whline(win,c,n))
-#define mvwinch(win,y,x)               (wmove(win,y,x) == ERR ? NCURSES_CAST(chtype, ERR) : winch(win))
-#define mvwinchnstr(win,y,x,s,n)       (wmove(win,y,x) == ERR ? ERR : winchnstr(win,s,n))
-#define mvwinchstr(win,y,x,s)          (wmove(win,y,x) == ERR ? ERR : winchstr(win,s))
-#define mvwinnstr(win,y,x,s,n)         (wmove(win,y,x) == ERR ? ERR : winnstr(win,s,n))
-#define mvwinsch(win,y,x,c)            (wmove(win,y,x) == ERR ? ERR : winsch(win,c))
-#define mvwinsnstr(win,y,x,s,n)                (wmove(win,y,x) == ERR ? ERR : winsnstr(win,s,n))
-#define mvwinsstr(win,y,x,s)           (wmove(win,y,x) == ERR ? ERR : winsstr(win,s))
-#define mvwinstr(win,y,x,s)            (wmove(win,y,x) == ERR ? ERR : winstr(win,s))
-#define mvwvline(win,y,x,c,n)          (wmove(win,y,x) == ERR ? ERR : wvline(win,c,n))
-
-#define mvaddch(y,x,ch)                        mvwaddch(stdscr,y,x,ch)
-#define mvaddchnstr(y,x,str,n)         mvwaddchnstr(stdscr,y,x,str,n)
-#define mvaddchstr(y,x,str)            mvwaddchstr(stdscr,y,x,str)
-#define mvaddnstr(y,x,str,n)           mvwaddnstr(stdscr,y,x,str,n)
-#define mvaddstr(y,x,str)              mvwaddstr(stdscr,y,x,str)
-#define mvchgat(y,x,n,a,c,o)           mvwchgat(stdscr,y,x,n,a,c,o)
-#define mvdelch(y,x)                   mvwdelch(stdscr,y,x)
-#define mvgetch(y,x)                   mvwgetch(stdscr,y,x)
-#define mvgetnstr(y,x,str,n)           mvwgetnstr(stdscr,y,x,str,n)
-#define mvgetstr(y,x,str)              mvwgetstr(stdscr,y,x,str)
-#define mvhline(y,x,c,n)               mvwhline(stdscr,y,x,c,n)
-#define mvinch(y,x)                    mvwinch(stdscr,y,x)
-#define mvinchnstr(y,x,s,n)            mvwinchnstr(stdscr,y,x,s,n)
-#define mvinchstr(y,x,s)               mvwinchstr(stdscr,y,x,s)
-#define mvinnstr(y,x,s,n)              mvwinnstr(stdscr,y,x,s,n)
-#define mvinsch(y,x,c)                 mvwinsch(stdscr,y,x,c)
-#define mvinsnstr(y,x,s,n)             mvwinsnstr(stdscr,y,x,s,n)
-#define mvinsstr(y,x,s)                        mvwinsstr(stdscr,y,x,s)
-#define mvinstr(y,x,s)                 mvwinstr(stdscr,y,x,s)
-#define mvvline(y,x,c,n)               mvwvline(stdscr,y,x,c,n)
+#define mvwaddch(win,y,x,ch)           (wmove((win),(y),(x)) == ERR ? ERR : waddch((win),(ch)))
+#define mvwaddchnstr(win,y,x,str,n)    (wmove((win),(y),(x)) == ERR ? ERR : waddchnstr((win),(str),(n)))
+#define mvwaddchstr(win,y,x,str)       (wmove((win),(y),(x)) == ERR ? ERR : waddchnstr((win),(str),-1))
+#define mvwaddnstr(win,y,x,str,n)      (wmove((win),(y),(x)) == ERR ? ERR : waddnstr((win),(str),(n)))
+#define mvwaddstr(win,y,x,str)         (wmove((win),(y),(x)) == ERR ? ERR : waddnstr((win),(str),-1))
+#define mvwdelch(win,y,x)              (wmove((win),(y),(x)) == ERR ? ERR : wdelch(win))
+#define mvwchgat(win,y,x,n,a,c,o)      (wmove((win),(y),(x)) == ERR ? ERR : wchgat((win),(n),(a),(c),(o)))
+#define mvwgetch(win,y,x)              (wmove((win),(y),(x)) == ERR ? ERR : wgetch(win))
+#define mvwgetnstr(win,y,x,str,n)      (wmove((win),(y),(x)) == ERR ? ERR : wgetnstr((win),(str),(n)))
+#define mvwgetstr(win,y,x,str)         (wmove((win),(y),(x)) == ERR ? ERR : wgetstr((win),(str)))
+#define mvwhline(win,y,x,c,n)          (wmove((win),(y),(x)) == ERR ? ERR : whline((win),(c),(n)))
+#define mvwinch(win,y,x)               (wmove((win),(y),(x)) == ERR ? NCURSES_CAST(chtype, ERR) : winch(win))
+#define mvwinchnstr(win,y,x,s,n)       (wmove((win),(y),(x)) == ERR ? ERR : winchnstr((win),(s),(n)))
+#define mvwinchstr(win,y,x,s)          (wmove((win),(y),(x)) == ERR ? ERR : winchstr((win),(s)))
+#define mvwinnstr(win,y,x,s,n)         (wmove((win),(y),(x)) == ERR ? ERR : winnstr((win),(s),(n)))
+#define mvwinsch(win,y,x,c)            (wmove((win),(y),(x)) == ERR ? ERR : winsch((win),(c)))
+#define mvwinsnstr(win,y,x,s,n)                (wmove((win),(y),(x)) == ERR ? ERR : winsnstr((win),(s),(n)))
+#define mvwinsstr(win,y,x,s)           (wmove((win),(y),(x)) == ERR ? ERR : winsstr((win),(s)))
+#define mvwinstr(win,y,x,s)            (wmove((win),(y),(x)) == ERR ? ERR : winstr((win),(s)))
+#define mvwvline(win,y,x,c,n)          (wmove((win),(y),(x)) == ERR ? ERR : wvline((win),(c),(n)))
+
+#define mvaddch(y,x,ch)                        mvwaddch(stdscr,(y),(x),(ch))
+#define mvaddchnstr(y,x,str,n)         mvwaddchnstr(stdscr,(y),(x),(str),(n))
+#define mvaddchstr(y,x,str)            mvwaddchstr(stdscr,(y),(x),(str))
+#define mvaddnstr(y,x,str,n)           mvwaddnstr(stdscr,(y),(x),(str),(n))
+#define mvaddstr(y,x,str)              mvwaddstr(stdscr,(y),(x),(str))
+#define mvchgat(y,x,n,a,c,o)           mvwchgat(stdscr,(y),(x),(n),(a),(c),(o))
+#define mvdelch(y,x)                   mvwdelch(stdscr,(y),(x))
+#define mvgetch(y,x)                   mvwgetch(stdscr,(y),(x))
+#define mvgetnstr(y,x,str,n)           mvwgetnstr(stdscr,(y),(x),(str),(n))
+#define mvgetstr(y,x,str)              mvwgetstr(stdscr,(y),(x),(str))
+#define mvhline(y,x,c,n)               mvwhline(stdscr,(y),(x),(c),(n))
+#define mvinch(y,x)                    mvwinch(stdscr,(y),(x))
+#define mvinchnstr(y,x,s,n)            mvwinchnstr(stdscr,(y),(x),(s),(n))
+#define mvinchstr(y,x,s)               mvwinchstr(stdscr,(y),(x),(s))
+#define mvinnstr(y,x,s,n)              mvwinnstr(stdscr,(y),(x),(s),(n))
+#define mvinsch(y,x,c)                 mvwinsch(stdscr,(y),(x),(c))
+#define mvinsnstr(y,x,s,n)             mvwinsnstr(stdscr,(y),(x),(s),(n))
+#define mvinsstr(y,x,s)                        mvwinsstr(stdscr,(y),(x),(s))
+#define mvinstr(y,x,s)                 mvwinstr(stdscr,(y),(x),(s))
+#define mvvline(y,x,c,n)               mvwvline(stdscr,(y),(x),(c),(n))
 
 /*
  * Some wide-character functions can be implemented without the extensions.
@@ -1311,7 +1311,7 @@ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_legacy_coding) (SCREEN*, int);     /*
  * Export fallback function for use in C++ binding.
  */
 #if !@HAVE_VSSCANF@
-#define vsscanf(a,b,c) _nc_vsscanf(a,b,c)
+#define vsscanf(a,b,c) _nc_vsscanf((a),(b),(c))
 NCURSES_EXPORT(int) vsscanf(const char *, const char *, va_list);
 #endif
 
index 6bd102fdb050f14b778fdacaafd0c16c642fd08d..cb76e2c2076870c65654e591a76be9d77731f070 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: curses.wide,v 1.44 2011/10/29 20:08:19 tom Exp $ */
+/* $Id: curses.wide,v 1.45 2012/07/28 18:10:02 tom Exp $ */
 /*
  * vile:cmode:
  * This file is part of ncurses, designed to be appended after curses.h.in
@@ -10,7 +10,7 @@
 
 extern NCURSES_EXPORT_VAR(cchar_t *) _nc_wacs;
 
-#define NCURSES_WACS(c)        (&_nc_wacs[(unsigned char)c])
+#define NCURSES_WACS(c)        (&_nc_wacs[NCURSES_CAST(unsigned char,(c))])
 
 #define WACS_BSSB      NCURSES_WACS('l')
 #define WACS_SSBB      NCURSES_WACS('m')
@@ -230,77 +230,77 @@ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vid_puts) (SCREEN*, attr_t, short, vo
 /*
  * XSI curses macros for XPG4 conformance.
  */
-#define add_wch(c)                     wadd_wch(stdscr,c)
-#define add_wchnstr(str,n)             wadd_wchnstr(stdscr,str,n)
-#define add_wchstr(str)                        wadd_wchstr(stdscr,str)
-#define addnwstr(wstr,n)               waddnwstr(stdscr,wstr,n)
-#define addwstr(wstr)                  waddwstr(stdscr,wstr)
-#define bkgrnd(c)                      wbkgrnd(stdscr,c)
-#define bkgrndset(c)                   wbkgrndset(stdscr,c)
-#define border_set(l,r,t,b,tl,tr,bl,br) wborder_set(stdscr,l,r,t,b,tl,tr,bl,br)
-#define box_set(w,v,h)                 wborder_set(w,v,v,h,h,0,0,0,0)
-#define echo_wchar(c)                  wecho_wchar(stdscr,c)
-#define get_wch(c)                     wget_wch(stdscr,c)
-#define get_wstr(t)                    wget_wstr(stdscr,t)
-#define getbkgrnd(wch)                 wgetbkgrnd(stdscr,wch)
-#define getn_wstr(t,n)                 wgetn_wstr(stdscr,t,n)
-#define hline_set(c,n)                 whline_set(stdscr,c,n)
-#define in_wch(c)                      win_wch(stdscr,c)
-#define in_wchnstr(c,n)                        win_wchnstr(stdscr,c,n)
-#define in_wchstr(c)                   win_wchstr(stdscr,c)
-#define innwstr(c,n)                   winnwstr(stdscr,c,n)
-#define ins_nwstr(t,n)                 wins_nwstr(stdscr,t,n)
-#define ins_wch(c)                     wins_wch(stdscr,c)
-#define ins_wstr(t)                    wins_wstr(stdscr,t)
-#define inwstr(c)                      winwstr(stdscr,c)
-#define vline_set(c,n)                 wvline_set(stdscr,c,n)
-#define wadd_wchstr(win,str)           wadd_wchnstr(win,str,-1)
-#define waddwstr(win,wstr)             waddnwstr(win,wstr,-1)
-#define wget_wstr(w,t)                 wgetn_wstr(w,t,-1)
-#define win_wchstr(w,c)                        win_wchnstr(w,c,-1)
-#define wins_wstr(w,t)                 wins_nwstr(w,t,-1)
+#define add_wch(c)                     wadd_wch(stdscr,(c))
+#define add_wchnstr(str,n)             wadd_wchnstr(stdscr,(str),(n))
+#define add_wchstr(str)                        wadd_wchstr(stdscr,(str))
+#define addnwstr(wstr,n)               waddnwstr(stdscr,(wstr),(n))
+#define addwstr(wstr)                  waddwstr(stdscr,(wstr))
+#define bkgrnd(c)                      wbkgrnd(stdscr,(c))
+#define bkgrndset(c)                   wbkgrndset(stdscr,(c))
+#define border_set(l,r,t,b,tl,tr,bl,br) wborder_set(stdscr,(l),(r),(t),(b),tl,tr,bl,br)
+#define box_set(w,v,h)                 wborder_set((w),(v),(v),(h),(h),0,0,0,0)
+#define echo_wchar(c)                  wecho_wchar(stdscr,(c))
+#define get_wch(c)                     wget_wch(stdscr,(c))
+#define get_wstr(t)                    wget_wstr(stdscr,(t))
+#define getbkgrnd(wch)                 wgetbkgrnd(stdscr,(wch))
+#define getn_wstr(t,n)                 wgetn_wstr(stdscr,(t),(n))
+#define hline_set(c,n)                 whline_set(stdscr,(c),(n))
+#define in_wch(c)                      win_wch(stdscr,(c))
+#define in_wchnstr(c,n)                        win_wchnstr(stdscr,(c),(n))
+#define in_wchstr(c)                   win_wchstr(stdscr,(c))
+#define innwstr(c,n)                   winnwstr(stdscr,(c),(n))
+#define ins_nwstr(t,n)                 wins_nwstr(stdscr,(t),(n))
+#define ins_wch(c)                     wins_wch(stdscr,(c))
+#define ins_wstr(t)                    wins_wstr(stdscr,(t))
+#define inwstr(c)                      winwstr(stdscr,(c))
+#define vline_set(c,n)                 wvline_set(stdscr,(c),(n))
+#define wadd_wchstr(win,str)           wadd_wchnstr((win),(str),-1)
+#define waddwstr(win,wstr)             waddnwstr((win),(wstr),-1)
+#define wget_wstr(w,t)                 wgetn_wstr((w),(t),-1)
+#define win_wchstr(w,c)                        win_wchnstr((w),(c),-1)
+#define wins_wstr(w,t)                 wins_nwstr((w),(t),-1)
 
 #if !NCURSES_OPAQUE
 #define wgetbkgrnd(win,wch)            ((win) ? (*(wch) = (win)->_bkgrnd) : *(wch), OK)
 #endif
 
-#define mvadd_wch(y,x,c)               mvwadd_wch(stdscr,y,x,c)
-#define mvadd_wchnstr(y,x,s,n)         mvwadd_wchnstr(stdscr,y,x,s,n)
-#define mvadd_wchstr(y,x,s)            mvwadd_wchstr(stdscr,y,x,s)
-#define mvaddnwstr(y,x,wstr,n)         mvwaddnwstr(stdscr,y,x,wstr,n)
-#define mvaddwstr(y,x,wstr)            mvwaddwstr(stdscr,y,x,wstr)
-#define mvget_wch(y,x,c)               mvwget_wch(stdscr,y,x,c)
-#define mvget_wstr(y,x,t)              mvwget_wstr(stdscr,y,x,t)
-#define mvgetn_wstr(y,x,t,n)           mvwgetn_wstr(stdscr,y,x,t,n)
-#define mvhline_set(y,x,c,n)           mvwhline_set(stdscr,y,x,c,n)
-#define mvin_wch(y,x,c)                        mvwin_wch(stdscr,y,x,c)
-#define mvin_wchnstr(y,x,c,n)          mvwin_wchnstr(stdscr,y,x,c,n)
-#define mvin_wchstr(y,x,c)             mvwin_wchstr(stdscr,y,x,c)
-#define mvinnwstr(y,x,c,n)             mvwinnwstr(stdscr,y,x,c,n)
-#define mvins_nwstr(y,x,t,n)           mvwins_nwstr(stdscr,y,x,t,n)
-#define mvins_wch(y,x,c)               mvwins_wch(stdscr,y,x,c)
-#define mvins_wstr(y,x,t)              mvwins_wstr(stdscr,y,x,t)
-#define mvinwstr(y,x,c)                        mvwinwstr(stdscr,y,x,c)
-#define mvvline_set(y,x,c,n)           mvwvline_set(stdscr,y,x,c,n)
+#define mvadd_wch(y,x,c)               mvwadd_wch(stdscr,(y),(x),(c))
+#define mvadd_wchnstr(y,x,s,n)         mvwadd_wchnstr(stdscr,(y),(x),(s),(n))
+#define mvadd_wchstr(y,x,s)            mvwadd_wchstr(stdscr,(y),(x),(s))
+#define mvaddnwstr(y,x,wstr,n)         mvwaddnwstr(stdscr,(y),(x),(wstr),(n))
+#define mvaddwstr(y,x,wstr)            mvwaddwstr(stdscr,(y),(x),(wstr))
+#define mvget_wch(y,x,c)               mvwget_wch(stdscr,(y),(x),(c))
+#define mvget_wstr(y,x,t)              mvwget_wstr(stdscr,(y),(x),(t))
+#define mvgetn_wstr(y,x,t,n)           mvwgetn_wstr(stdscr,(y),(x),(t),(n))
+#define mvhline_set(y,x,c,n)           mvwhline_set(stdscr,(y),(x),(c),(n))
+#define mvin_wch(y,x,c)                        mvwin_wch(stdscr,(y),(x),(c))
+#define mvin_wchnstr(y,x,c,n)          mvwin_wchnstr(stdscr,(y),(x),(c),(n))
+#define mvin_wchstr(y,x,c)             mvwin_wchstr(stdscr,(y),(x),(c))
+#define mvinnwstr(y,x,c,n)             mvwinnwstr(stdscr,(y),(x),(c),(n))
+#define mvins_nwstr(y,x,t,n)           mvwins_nwstr(stdscr,(y),(x),(t),(n))
+#define mvins_wch(y,x,c)               mvwins_wch(stdscr,(y),(x),(c))
+#define mvins_wstr(y,x,t)              mvwins_wstr(stdscr,(y),(x),(t))
+#define mvinwstr(y,x,c)                        mvwinwstr(stdscr,(y),(x),(c))
+#define mvvline_set(y,x,c,n)           mvwvline_set(stdscr,(y),(x),(c),(n))
 
-#define mvwadd_wch(win,y,x,c)          (wmove(win,y,x) == ERR ? ERR : wadd_wch(win,c))
-#define mvwadd_wchnstr(win,y,x,s,n)    (wmove(win,y,x) == ERR ? ERR : wadd_wchnstr(win,s,n))
-#define mvwadd_wchstr(win,y,x,s)       (wmove(win,y,x) == ERR ? ERR : wadd_wchstr(win,s))
-#define mvwaddnwstr(win,y,x,wstr,n)    (wmove(win,y,x) == ERR ? ERR : waddnwstr(win,wstr,n))
-#define mvwaddwstr(win,y,x,wstr)       (wmove(win,y,x) == ERR ? ERR : waddwstr(win,wstr))
-#define mvwget_wch(win,y,x,c)          (wmove(win,y,x) == ERR ? ERR : wget_wch(win,c))
-#define mvwget_wstr(win,y,x,t)         (wmove(win,y,x) == ERR ? ERR : wget_wstr(win,t))
-#define mvwgetn_wstr(win,y,x,t,n)      (wmove(win,y,x) == ERR ? ERR : wgetn_wstr(win,t,n))
-#define mvwhline_set(win,y,x,c,n)      (wmove(win,y,x) == ERR ? ERR : whline_set(win,c,n))
-#define mvwin_wch(win,y,x,c)           (wmove(win,y,x) == ERR ? ERR : win_wch(win,c))
-#define mvwin_wchnstr(win,y,x,c,n)     (wmove(win,y,x) == ERR ? ERR : win_wchnstr(win,c,n))
-#define mvwin_wchstr(win,y,x,c)                (wmove(win,y,x) == ERR ? ERR : win_wchstr(win,c))
-#define mvwinnwstr(win,y,x,c,n)                (wmove(win,y,x) == ERR ? ERR : winnwstr(win,c,n))
-#define mvwins_nwstr(win,y,x,t,n)      (wmove(win,y,x) == ERR ? ERR : wins_nwstr(win,t,n))
-#define mvwins_wch(win,y,x,c)          (wmove(win,y,x) == ERR ? ERR : wins_wch(win,c))
-#define mvwins_wstr(win,y,x,t)         (wmove(win,y,x) == ERR ? ERR : wins_wstr(win,t))
-#define mvwinwstr(win,y,x,c)           (wmove(win,y,x) == ERR ? ERR : winwstr(win,c))
-#define mvwvline_set(win,y,x,c,n)      (wmove(win,y,x) == ERR ? ERR : wvline_set(win,c,n))
+#define mvwadd_wch(win,y,x,c)          (wmove(win,(y),(x)) == ERR ? ERR : wadd_wch((win),(c)))
+#define mvwadd_wchnstr(win,y,x,s,n)    (wmove(win,(y),(x)) == ERR ? ERR : wadd_wchnstr((win),(s),(n)))
+#define mvwadd_wchstr(win,y,x,s)       (wmove(win,(y),(x)) == ERR ? ERR : wadd_wchstr((win),(s)))
+#define mvwaddnwstr(win,y,x,wstr,n)    (wmove(win,(y),(x)) == ERR ? ERR : waddnwstr((win),(wstr),(n)))
+#define mvwaddwstr(win,y,x,wstr)       (wmove(win,(y),(x)) == ERR ? ERR : waddwstr((win),(wstr)))
+#define mvwget_wch(win,y,x,c)          (wmove(win,(y),(x)) == ERR ? ERR : wget_wch((win),(c)))
+#define mvwget_wstr(win,y,x,t)         (wmove(win,(y),(x)) == ERR ? ERR : wget_wstr((win),(t)))
+#define mvwgetn_wstr(win,y,x,t,n)      (wmove(win,(y),(x)) == ERR ? ERR : wgetn_wstr((win),(t),(n)))
+#define mvwhline_set(win,y,x,c,n)      (wmove(win,(y),(x)) == ERR ? ERR : whline_set((win),(c),(n)))
+#define mvwin_wch(win,y,x,c)           (wmove(win,(y),(x)) == ERR ? ERR : win_wch((win),(c)))
+#define mvwin_wchnstr(win,y,x,c,n)     (wmove(win,(y),(x)) == ERR ? ERR : win_wchnstr((win),(c),(n)))
+#define mvwin_wchstr(win,y,x,c)                (wmove(win,(y),(x)) == ERR ? ERR : win_wchstr((win),(c)))
+#define mvwinnwstr(win,y,x,c,n)                (wmove(win,(y),(x)) == ERR ? ERR : winnwstr((win),(c),(n)))
+#define mvwins_nwstr(win,y,x,t,n)      (wmove(win,(y),(x)) == ERR ? ERR : wins_nwstr((win),(t),(n)))
+#define mvwins_wch(win,y,x,c)          (wmove(win,(y),(x)) == ERR ? ERR : wins_wch((win),(c)))
+#define mvwins_wstr(win,y,x,t)         (wmove(win,(y),(x)) == ERR ? ERR : wins_wstr((win),(t)))
+#define mvwinwstr(win,y,x,c)           (wmove(win,(y),(x)) == ERR ? ERR : winwstr((win),(c)))
+#define mvwvline_set(win,y,x,c,n)      (wmove(win,(y),(x)) == ERR ? ERR : wvline_set((win),(c),(n)))
 
 #endif /* NCURSES_NOMACROS */
 
index e6f3175276562970470a1f817c0522152a83c0d9..931c633579ed031e5cf14c92c89c77bd9c1b3aa6 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: headers,v 1.11 2012/07/07 19:58:24 tom Exp $
+# $Id: headers,v 1.12 2012/07/28 22:41:34 Roumen.Petrov Exp $
 ##############################################################################
 # Copyright (c) 1998-2009,2012 Free Software Foundation, Inc.                #
 #                                                                            #
@@ -46,6 +46,6 @@ $(srcdir)/nc_tparm.h
 
 # Porting
 @ port_win32con
-ncurses_mingw.h
+$(srcdir)/ncurses_mingw.h
 
 # vile:makemode
index 82aa0637c3964c82eaeab3e3b72ce8292693bb82..6b7b4de56cc5521db2bc8f2810cf2490caaf07a5 100644 (file)
@@ -6,8 +6,8 @@
 # Report bugs and new terminal descriptions to
 #      bug-ncurses@gnu.org
 #
-#      $Revision: 1.460 $
-#      $Date: 2012/06/02 20:15:40 $
+#      $Revision: 1.464 $
+#      $Date: 2012/07/28 19:10:53 $
 #
 # The original header is preserved below for reference.  It is noted that there
 # is a "newer" version which differs in some cosmetic details (but actually
@@ -321,7 +321,7 @@ vanilla|dumb tty,
 # DEL and ^C are hardcoded to act as kill characters.
 # ^D acts as a line break (just like newline).
 # It also interprets
-#      \033];xxx\007 
+#      \033];xxx\007
 # for compatibility with xterm -TD
 9term|Plan9 terminal emulator for X,
        am,
@@ -959,6 +959,7 @@ linux2.6|linux 2.6.x console,
        sgr0=\E[m\017, smacs=^N, use=linux2.2,
 
 # The 3.0 kernel adds support for clearing scrollback buffer (capability E3).
+# It is the same as xterm's erase-saved-lines feature.
 linux3.0|linux 3.0 kernels,
        E3=\E[3;J, use=linux2.6,
 
@@ -2982,7 +2983,8 @@ putty|PuTTY terminal emulator,
        sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
        sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[?47h,
        smir=\E[4h, smpch=\E[11m, smso=\E[7m, smul=\E[4m,
-       tbc=\E[3g, vpa=\E[%i%p1%dd, use=vt102+enq, use=xterm+sl,
+       tbc=\E[3g, vpa=\E[%i%p1%dd, E3=\E[3;J, use=vt102+enq,
+       use=xterm+sl,
 vt100-putty|Reset PuTTY to pure vt100,
        rs2=\E<\E["p\Ec\E[?3l\E]R\E[40"p\E[61"p\E[50;1;2"p,
        use=vt100,
@@ -3237,7 +3239,7 @@ xterm-r5|xterm R5 version,
 # added khome/kend, hts based on the R6 xterm code - TD
 # (khome/kend do not actually work in X11R5 or X11R6, but many people use this
 # for compatibility with other emulators).
-xterm-r6|xterm-old|xterm X11R6 version,
+xterm-r6|xterm X11R6 version,
        OTbs, am, km, mir, msgr, xenl,
        cols#80, it#8, lines#24,
        acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
@@ -3263,6 +3265,8 @@ xterm-r6|xterm-old|xterm X11R6 version,
        sgr0=\E[m, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h,
        smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
        use=vt100+enq,
+xterm-old|antique xterm version,
+       use=xterm-r6,
 # This is the base xterm entry for the xterm supplied with XFree86 3.2 & up.
 # The name has been changed and some aliases have been removed.
 xterm-xf86-v32|xterm terminal emulator (XFree86 3.2 Window System),
@@ -3554,8 +3558,8 @@ xterm-basic|modern xterm terminal emulator - common,
        sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
        sgr0=\E(B\E[m, smacs=\E(0, smam=\E[?7h, smcup=\E[?1049h,
        smir=\E[4h, smkx=\E[?1h\E=, smm=\E[?1034h, smso=\E[7m,
-       smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd, use=ansi+pp,
-       use=xterm+kbs, use=vt100+enq,
+       smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd, E3=\E[3;J,
+       use=ansi+pp, use=xterm+kbs, use=vt100+enq,
 
 # From: David J. MacKenzie <djm@va.pubnix.com>, 14 Nov 1997
 # In retrospect, something like xterm-r6 was intended here -TD
@@ -3625,11 +3629,11 @@ xterm-1003|testing xterm-mouse,
 # Ms modifies the selection/clipboard.  Its parameters are
 #      p1 = the storage unit (clipboard, selection or cut buffer)
 #      p2 = the base64-encoded clipboard content.
-# 
+#
 # Ss is used to set the cursor style as described by the DECSCUSR
 #      function to a block or underline.
 # Se resets the cursor style to the terminal power-on default.
-#  
+#
 # Cs and Cr set and reset the cursor colour.
 xterm+tmux|advanced xterm features used in tmux,
        Cr=\E]112\007, Cs=\E]12;%p1%s\007,
@@ -3739,7 +3743,7 @@ xterm-noapp|xterm with cursor keys in normal mode,
        use=xterm,
 
 xterm-24|vs100|xterms|xterm terminal emulator (X Window System),
-       lines#24, use=xterm,
+       lines#24, use=xterm-old,
 
 # This is xterm for ncurses.
 xterm|xterm terminal emulator (X Window System),
@@ -3801,8 +3805,8 @@ dec+sl|DEC VTxx status line,
 #
 # xterm with bold instead of underline
 xterm-bold|xterm terminal emulator (X11R6 Window System) standout w/bold,
-       sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;1%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
-       smso=\E[7m, smul=\E[1m, use=xterm,
+       sgr=%?%p9%t\016%e\017%;B\E[0%?%p6%t;1%;%?%p2%t;1%;%?%p1%p3%|%t;7%;m,
+       smso=\E[7m, smul=\E[1m, use=xterm-old,
 
 # See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
 xterm-nic|xterm with ich/ich1 suppressed for non-curses programs,
@@ -5060,7 +5064,7 @@ screen.xterm-xfree86|screen.xterm-new|screen customized for modern xterm,
        bce@, bw,
        invis@, kIC@, kNXT@, kPRV@, meml@, memu@,
        sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m,
-       use=screen+fkeys, use=xterm-new,
+       E3@, use=screen+fkeys, use=xterm-new,
 # xterm-r6 does not really support khome/kend unless it is propped up by
 # the translations resource.
 screen.xterm-r6|screen customized for X11R6 xterm,
@@ -16077,7 +16081,7 @@ ncr7901|ncr 7901 model,
 # Manufactured in the early/mid eighties, behaves almost the same as a
 # Televideo 950.  Take a 950, change its cabinet for a more 80s-ish one (but
 # keep the same keyboard layout), add an optional 25-line mode, replace the DIP
-# switches with a menu and remove the "lock line" feature (ESC !  1 and ESC ! 
+# switches with a menu and remove the "lock line" feature (ESC !  1 and ESC !
 # 2), here is the NDR 9500.  Even the line-lock, albeit disabled, is
 # recognized:  if you type in "ESC !", the next (third) character is not
 # echoed, showing that the terminal was actually waiting for a parameter!
@@ -21415,7 +21419,8 @@ v3220|LANPAR Vision II model 3220/3221/3222,
 # gsbom/grbom are used to enable/disable real bold (not intensity bright) mode.
 #    This was implemented for the Hurd.
 # E3 clears the terminal's scrollback buffer.  This was implemented in the
-#    Linux 3.0 kernel as a security feature.
+#    Linux 3.0 kernel as a security feature.  It matches a feature which was
+#    added in xterm patch #107.
 # U8 is a numeric capability which denotes a terminal emulator which does not
 #    support VT100 SI/SO when processing UTF-8 encoding.  Set this to a nonzero
 #    value to enable it.
@@ -22887,4 +22892,11 @@ v3220|LANPAR Vision II model 3220/3221/3222,
 #      * add dl1/il1 to some entries based on dl/il values -TD
 #      * add dl to simpleterm -TD
 #
+# 2012-06-10
+#      * modify some older xterm entries to align with xterm source -TD
+#      * separate "xterm-old" alias from "xterm-r6" -TD
+#
+# 2012-07-28
+#      * add E3 to xterm-basic and putty -TD
+#
 ######## SHANTIH!  SHANTIH!  SHANTIH!
index ac4f5ad9457935946219adccd97ee845b2bba943..0118f20226345705adbc47ee5a69907a20c7c33a 100644 (file)
@@ -50,7 +50,7 @@
 # endif
 #endif
 
-MODULE_ID("$Id: tinfo_driver.c,v 1.23 2012/07/22 00:45:34 tom Exp $")
+MODULE_ID("$Id: tinfo_driver.c,v 1.24 2012/07/28 20:12:11 tom Exp $")
 
 /*
  * SCO defines TIOCGSIZE and the corresponding struct.  Other systems (SunOS,
@@ -634,13 +634,11 @@ drv_screen_init(SCREEN *sp)
 static void
 drv_init(TERMINAL_CONTROL_BLOCK * TCB)
 {
-    SCREEN *sp;
     TERMINAL *trm;
 
     AssertTCB();
 
     trm = (TERMINAL *) TCB;
-    sp = TCB->csp;
 
     TCB->info.initcolor = VALID_STRING(initialize_color);
     TCB->info.canchange = can_change;
index 104dffd6e8666891e349e3117b3b0a4ed6acb858..b46393f83f65a43052245f2af2b1c1be89179a4c 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (5.9-20120721) unstable; urgency=low
+ncurses6 (5.9-20120728) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 21 Jul 2012 19:33:07 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 28 Jul 2012 19:51:08 -0400
 
 ncurses6 (5.9-20120608) unstable; urgency=low
 
index 7c4f8d1baa970154274de50fc878e96d9f94e165..13fdc0b9a1e2a015a6db9b08f28193f4adc2da71 100644 (file)
@@ -1,7 +1,7 @@
 Summary: shared libraries for terminal handling
 Name: ncurses6
 Release: 5.9
-Version: 20120721
+Version: 20120728
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{release}-%{version}.tgz