]> ncurses.scripts.mit.edu Git - ncurses.git/commitdiff
ncurses 5.6 - patch 20080105
authorThomas E. Dickey <dickey@invisible-island.net>
Sun, 6 Jan 2008 02:04:59 +0000 (02:04 +0000)
committerThomas E. Dickey <dickey@invisible-island.net>
Sun, 6 Jan 2008 02:04:59 +0000 (02:04 +0000)
+ several improvements to terminfo entries based on xterm #230 -TD
+ modify MKlib_gen.sh to handle keyname/key_name prototypes, so the
  "link_test" builds properly.
+ fix for toe command-line options -u/-U to ensure filename is given.
+ fix allocation-size for command-line parsing in infocmp from 20070728
  (report by Miroslav Lichvar)
+ improve resizeterm() by moving ripped-off lines, and repainting the
  soft-keys (report by Katarina Machalkova)
+ add clarification in wclear's manpage noting that the screen will be
  cleared even if a subwindow is cleared (prompted by Christer Enfors
  question).
+ change test/ncurses.c soft-key tests to work with KEY_RESIZE.

14 files changed:
NEWS
dist.mk
man/curs_clear.3x
man/toe.1m
misc/terminfo.src
ncurses/base/MKlib_gen.sh
ncurses/base/lib_set_term.c
ncurses/base/lib_slkclear.c
ncurses/base/resizeterm.c
ncurses/curses.priv.h
ncurses/tinfo/lib_data.c
progs/infocmp.c
progs/toe.c
test/ncurses.c

diff --git a/NEWS b/NEWS
index 5965909102f58936f5094fbef838bf78119d5885..4778fc2f24ec86ad866e984f52f236bdcf1b7959 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,5 @@
 -------------------------------------------------------------------------------
 -------------------------------------------------------------------------------
--- Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.               --
+-- Copyright (c) 1998-2007,2008 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             --
 --                                                                           --
 -- Permission is hereby granted, free of charge, to any person obtaining a   --
 -- copy of this software and associated documentation files (the             --
@@ -25,7 +25,7 @@
 -- sale, use or other dealings in this Software without prior written        --
 -- authorization.                                                            --
 -------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written        --
 -- authorization.                                                            --
 -------------------------------------------------------------------------------
--- $Id: NEWS,v 1.1188 2007/12/22 23:56:08 tom Exp $
+-- $Id: NEWS,v 1.1195 2008/01/06 00:01:08 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,20 @@ 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.
 
 Changes through 1.9.9e did not credit all contributions;
 it is not possible to add this information.
 
+20080105
+       + several improvements to terminfo entries based on xterm #230 -TD
+       + modify MKlib_gen.sh to handle keyname/key_name prototypes, so the
+         "link_test" builds properly.
+       + fix for toe command-line options -u/-U to ensure filename is given.
+       + fix allocation-size for command-line parsing in infocmp from 20070728
+         (report by Miroslav Lichvar)
+       + improve resizeterm() by moving ripped-off lines, and repainting the
+         soft-keys (report by Katarina Machalkova)
+       + add clarification in wclear's manpage noting that the screen will be
+         cleared even if a subwindow is cleared (prompted by Christer Enfors
+         question).
+       + change test/ncurses.c soft-key tests to work with KEY_RESIZE.
+
 20071222
        + continue implementing support for threading demo by adding mutex
          for delwin().
 20071222
        + continue implementing support for threading demo by adding mutex
          for delwin().
diff --git a/dist.mk b/dist.mk
index a29dd36ec56b808fe91daf6756f323ed37f92a91..58497df54c69d6a81e4ee177c3f8a7bc4305e913 100644 (file)
--- a/dist.mk
+++ b/dist.mk
@@ -25,7 +25,7 @@
 # use or other dealings in this Software without prior written               #
 # authorization.                                                             #
 ##############################################################################
 # use or other dealings in this Software without prior written               #
 # authorization.                                                             #
 ##############################################################################
-# $Id: dist.mk,v 1.620 2007/12/22 20:41:31 tom Exp $
+# $Id: dist.mk,v 1.622 2008/01/05 19:49:50 tom Exp $
 # Makefile for creating ncurses distributions.
 #
 # This only needs to be used directly as a makefile by developers, but
 # 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 = 6
 # These define the major/minor/patch versions of ncurses.
 NCURSES_MAJOR = 5
 NCURSES_MINOR = 6
-NCURSES_PATCH = 20071222
+NCURSES_PATCH = 20080105
 
 # We don't append the patch to the version, since this only applies to releases
 VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
 
 # We don't append the patch to the version, since this only applies to releases
 VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
index fa7723af4fe8a00e8ca69a6805f33837ca04544e..adbfd2cc001de9f2124e3ded165d198561ac8d6f 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998,2005 Free Software Foundation, Inc.                   *
+.\" Copyright (c) 1998-2005,2007 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            *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_clear.3x,v 1.10 2005/10/01 19:34:43 tom Exp $
+.\" $Id: curs_clear.3x,v 1.11 2007/12/29 15:58:38 tom Exp $
 .TH curs_clear 3X ""
 .na
 .hy 0
 .TH curs_clear 3X ""
 .na
 .hy 0
@@ -105,6 +105,12 @@ via \fBwerase()\fP and \fBwclear()\fP.
 That fact is not documented in other implementations,
 and may not be true of implementations
 which were not derived from SVr4 source.
 That fact is not documented in other implementations,
 and may not be true of implementations
 which were not derived from SVr4 source.
+.PP
+Not obvious from the description,
+most implementations clear the screen after \fBwclear\fP
+even for a subwindow or derived window.
+If you do not want to clear the screen during the next \fBwrefresh\fP,
+use \fBwerase\fP instead.
 .SH SEE ALSO
 \fBcurses\fR(3X), \fBcurs_outopts\fR(3X), \fBcurs_refresh\fR(3X)
 .\"#
 .SH SEE ALSO
 \fBcurses\fR(3X), \fBcurs_outopts\fR(3X), \fBcurs_refresh\fR(3X)
 .\"#
index 36cc3d0399846f2c7f780bba012b51ef24896100..15303541dddc86974bafa26b5c0c1a31a0c68dfa 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
 .\"***************************************************************************
-.\" Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2006,2008 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            *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: toe.1m,v 1.20 2006/12/24 17:20:37 tom Exp $
+.\" $Id: toe.1m,v 1.21 2008/01/05 20:57:16 tom Exp $
 .TH @TOE@ 1M ""
 .ds n 5
 .ds d @TERMINFO@
 .TH @TOE@ 1M ""
 .ds n 5
 .ds d @TERMINFO@
 .br
 .SH DESCRIPTION
 .PP
 .br
 .SH DESCRIPTION
 .PP
-With no options, \fBtoe\fR lists all available terminal types by primary name
-with descriptions.  File arguments specify the directories to be scanned; if no
-such arguments are given, your default terminfo directory is scanned.  If you
-also specify the \fB-h\fR option, a directory header will be issued as each
+With no options,
+\fBtoe\fR lists all available terminal types by primary name
+with descriptions.
+File arguments specify the directories to be scanned; if no
+such arguments are given,
+your default terminfo directory is scanned.
+If you also specify the \fB-h\fR option,
+a directory header will be issued as each
 directory is entered.
 .PP
 There are other options intended for use by terminfo file maintainers:
 directory is entered.
 .PP
 There are other options intended for use by terminfo file maintainers:
@@ -50,16 +54,25 @@ report on all of the terminal databases which ncurses would search,
 rather than only the first one that it finds.
 .TP
 \fB-u\fR \fIfile\fR
 rather than only the first one that it finds.
 .TP
 \fB-u\fR \fIfile\fR
-says to issue a report on dependencies in the given file. This report condenses
-the `use' relation: each line consists of the primary name of a terminal that
-has use capabilities, followed by a colon, followed by the
+says to write a report to the standard output,
+listing dependencies in the given terminfo/termcap source file.
+The report condenses the `use' relation:
+each line consists of the primary name of a terminal that
+has use capabilities,
+followed by a colon,
+followed by the
 whitespace-separated primary names of all terminals which occur in those use
 whitespace-separated primary names of all terminals which occur in those use
-capabilities, followed by a newline
+capabilities,
+followed by a newline
 .TP
 \fB-U\fR \fIfile\fR
 .TP
 \fB-U\fR \fIfile\fR
-says to issue a report on reverse dependencies in the given file. This report
-reverses the `use' relation: each line consists of the primary name of a
-terminal that occurs in use capabilities, followed by a colon, followed by the
+says to write a report to the standard output,
+listing reverse dependencies in the given terminfo/termcap source file.
+The report reverses the `use' relation:
+each line consists of the primary name of a
+terminal that occurs in use capabilities,
+followed by a colon,
+followed by the
 whitespace-separated primary names of all terminals which depend on it,
 followed by a newline.
 .TP
 whitespace-separated primary names of all terminals which depend on it,
 followed by a newline.
 .TP
@@ -70,7 +83,8 @@ The optional parameter \fIn\fR is a number from 1 to 10,
 interpreted as for \fB@TIC@\fR(1M).
 .TP
 \fB-V\fR
 interpreted as for \fB@TIC@\fR(1M).
 .TP
 \fB-V\fR
-reports the version of ncurses which was used in this program, and exits.
+reports the version of ncurses which was used in this program,
+and exits.
 .SH FILES
 .TP 5
 \fB\*d/?/*\fR
 .SH FILES
 .TP 5
 \fB\*d/?/*\fR
index 5fa437307f1164bb7301255409335a15a1013490..8d905fc4cf850e82d3d08fed8896f12e6d3a6387 100644 (file)
@@ -6,8 +6,8 @@
 # Report bugs and new terminal descriptions to
 #      bug-ncurses@gnu.org
 #
 # Report bugs and new terminal descriptions to
 #      bug-ncurses@gnu.org
 #
-#      $Revision: 1.318 $
-#      $Date: 2007/11/03 19:02:01 $
+#      $Revision: 1.326 $
+#      $Date: 2007/11/12 00:22:07 $
 #
 # 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
 #
 # 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
@@ -3017,10 +3017,8 @@ xterm-xf86-v44|xterm terminal emulator (XFree86 4.4 Window System),
        cnorm=\E[?12l\E[?25h, cvvis=\E[?12;25h, indn=\E[%p1%dS,
        rin=\E[%p1%dT, use=xterm-xf86-v43,
 
        cnorm=\E[?12l\E[?25h, cvvis=\E[?12;25h, indn=\E[%p1%dS,
        rin=\E[%p1%dT, use=xterm-xf86-v43,
 
-# This is the most common alias for xterm-new.
 xterm-xfree86|xterm terminal emulator (XFree86),
 xterm-xfree86|xterm terminal emulator (XFree86),
-       use=xterm-new,
-#      use=xterm-old,
+       use=xterm-xf86-v44,
 
 # This version reflects the current xterm features.
 xterm-new|modern xterm terminal emulator,
 
 # This version reflects the current xterm features.
 xterm-new|modern xterm terminal emulator,
@@ -3048,7 +3046,16 @@ xterm-new|modern xterm terminal emulator,
 # The meta key may also be used as a modifier in this scheme, adding another
 # bit to the parameter.
 xterm+pcfkeys|fragment for PC-style fkeys,
 # The meta key may also be used as a modifier in this scheme, adding another
 # bit to the parameter.
 xterm+pcfkeys|fragment for PC-style fkeys,
-       use=xterm+pcf2, use=xterm+pcc2,
+       use=xterm+app, use=xterm+pcf2, use=xterm+pcc2,
+       use=xterm+pce2,
+#
+xterm+noapp|fragment with cursor keys in normal mode,
+       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[F,
+       khome=\E[H,
+
+xterm+app|fragment with cursor keys in application mode,
+       kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\EOF,
+       khome=\EOH,
 #
 # The "PC-style" modifier scheme was introduced in xterm patch #94 (1999/3/27)
 # and revised in patch #167 (2002/8/24).  Some other terminal emulators copied
 #
 # The "PC-style" modifier scheme was introduced in xterm patch #94 (1999/3/27)
 # and revised in patch #167 (2002/8/24).  Some other terminal emulators copied
@@ -3071,28 +3078,39 @@ xterm+pcfkeys|fragment for PC-style fkeys,
 # that might apply to xterm+pcfkeys with different values of that resource.
 xterm+pcc3|fragment with modifyCursorKeys:3,
        kLFT=\E[>1;2D, kRIT=\E[>1;2C, kind=\E[>1;2B,
 # that might apply to xterm+pcfkeys with different values of that resource.
 xterm+pcc3|fragment with modifyCursorKeys:3,
        kLFT=\E[>1;2D, kRIT=\E[>1;2C, kind=\E[>1;2B,
-       kri=\E[>1;2A, kDN=\E[>1;2B, kDN5=\E[>1;5B, kDN6=\E[>1;6B,
-       kLFT5=\E[>1;5D, kLFT6=\E[>1;6D, kRIT5=\E[>1;5C,
-       kRIT6=\E[>1;6C, kUP=\E[>1;2A, kUP5=\E[>1;5A,
-       kUP6=\E[>1;6A,
+       kri=\E[>1;2A, kDN=\E[>1;2B, kDN3=\E[>1;3B, kDN4=\E[>1;4B,
+       kDN5=\E[>1;5B, kDN6=\E[>1;6B, kDN7=\E[>1;7B,
+       kLFT3=\E[>1;3D, kLFT4=\E[>1;4D, kLFT5=\E[>1;5D,
+       kLFT6=\E[>1;6D, kLFT7=\E[>1;7D, kRIT3=\E[>1;3C,
+       kRIT4=\E[>1;4C, kRIT5=\E[>1;5C, kRIT6=\E[>1;6C,
+       kRIT7=\E[>1;7C, kUP=\E[>1;2A, kUP3=\E[>1;3A,
+       kUP4=\E[>1;4A, kUP5=\E[>1;5A, kUP6=\E[>1;6A,
+       kUP7=\E[>1;7A,
 
 xterm+pcc2|fragment with modifyCursorKeys:2,
        kLFT=\E[1;2D, kRIT=\E[1;2C, kind=\E[1;2B, kri=\E[1;2A,
 
 xterm+pcc2|fragment with modifyCursorKeys:2,
        kLFT=\E[1;2D, kRIT=\E[1;2C, kind=\E[1;2B, kri=\E[1;2A,
-       kDN=\E[1;2B, kDN5=\E[1;5B, kDN6=\E[1;6B, kLFT5=\E[1;5D,
-       kLFT6=\E[1;6D, kRIT5=\E[1;5C, kRIT6=\E[1;6C, kUP=\E[1;2A,
-       kUP5=\E[1;5A, kUP6=\E[1;6A,
+       kDN=\E[1;2B, kDN3=\E[1;3B, kDN4=\E[1;4B, kDN5=\E[1;5B,
+       kDN6=\E[1;6B, kDN7=\E[1;7B, kLFT3=\E[1;3D, kLFT4=\E[1;4D,
+       kLFT5=\E[1;5D, kLFT6=\E[1;6D, kLFT7=\E[1;7D,
+       kRIT3=\E[1;3C, kRIT4=\E[1;4C, kRIT5=\E[1;5C,
+       kRIT6=\E[1;6C, kRIT7=\E[1;7C, kUP=\E[1;2A, kUP3=\E[1;3A,
+       kUP4=\E[1;4A, kUP5=\E[1;5A, kUP6=\E[1;6A, kUP7=\E[1;7A,
 
 xterm+pcc1|fragment with modifyCursorKeys:1,
        kLFT=\E[2D, kRIT=\E[2C, kind=\E[2B, kri=\E[2A, kDN=\E[2B,
 
 xterm+pcc1|fragment with modifyCursorKeys:1,
        kLFT=\E[2D, kRIT=\E[2C, kind=\E[2B, kri=\E[2A, kDN=\E[2B,
-       kDN5=\E[5B, kDN6=\E[6B, kLFT5=\E[5D, kLFT6=\E[6D,
-       kRIT5=\E[5C, kRIT6=\E[6C, kUP=\E[2A, kUP5=\E[5A,
-       kUP6=\E[6A,
+       kDN3=\E[3B, kDN4=\E[4B, kDN5=\E[5B, kDN6=\E[6B, kDN7=\E[7B,
+       kLFT3=\E[3D, kLFT4=\E[4D, kLFT5=\E[5D, kLFT6=\E[6D,
+       kLFT7=\E[7D, kRIT3=\E[3C, kRIT4=\E[4C, kRIT5=\E[5C,
+       kRIT6=\E[6C, kRIT7=\E[7C, kUP=\E[2A, kUP3=\E[3A,
+       kUP4=\E[4A, kUP5=\E[5A, kUP6=\E[6A, kUP7=\E[7A,
 
 xterm+pcc0|fragment with modifyCursorKeys:0,
        kLFT=\EO2D, kRIT=\EO2C, kind=\EO2B, kri=\EO2A, kDN=\EO2B,
 
 xterm+pcc0|fragment with modifyCursorKeys:0,
        kLFT=\EO2D, kRIT=\EO2C, kind=\EO2B, kri=\EO2A, kDN=\EO2B,
-       kDN5=\EO5B, kDN6=\EO6B, kLFT5=\EO5D, kLFT6=\EO6D,
-       kRIT5=\EO5C, kRIT6=\EO6C, kUP=\EO2A, kUP5=\EO5A,
-       kUP6=\EO6A,
+       kDN3=\EO3B, kDN4=\EO4B, kDN5=\EO5B, kDN6=\EO6B, kDN7=\EO7B,
+       kLFT3=\EO3D, kLFT4=\EO4D, kLFT5=\EO5D, kLFT6=\EO6D,
+       kLFT7=\EO7D, kRIT3=\EO3C, kRIT4=\EO4C, kRIT5=\EO5C,
+       kRIT6=\EO6C, kRIT7=\EO7C, kUP=\EO2A, kUP3=\EO3A,
+       kUP4=\EO4A, kUP5=\EO5A, kUP6=\EO6A, kUP7=\EO7A,
 
 #
 # Here are corresponding fragments from xterm patch #216:
 
 #
 # Here are corresponding fragments from xterm patch #216:
@@ -3136,6 +3154,32 @@ xterm+pcf2|fragment with modifyFunctionKeys:2,
        kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~,
        kf8=\E[19~, kf9=\E[20~,
 #
        kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~,
        kf8=\E[19~, kf9=\E[20~,
 #
+# Chunks from xterm #230:
+xterm+pce2|fragment with modifyCursorKeys:2,
+       kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H, kIC=\E[2;2~,
+       kNXT=\E[6;2~, kPRV=\E[5;2~, kich1=\E[2~, knp=\E[6~,
+       kpp=\E[5~, kDC3=\E[3;3~, kDC4=\E[3;4~, kDC5=\E[3;5~,
+       kDC6=\E[3;6~, kDC7=\E[3;7~, kEND3=\E[1;3F, kEND4=\E[1;4F,
+       kEND5=\E[1;5F, kEND6=\E[1;6F, kEND7=\E[1;7F,
+       kHOM3=\E[1;3H, kHOM4=\E[1;4H, kHOM5=\E[1;5H,
+       kHOM6=\E[1;6H, kHOM7=\E[1;7H, kIC3=\E[2;3~, kIC4=\E[2;4~,
+       kIC5=\E[2;5~, kIC6=\E[2;6~, kIC7=\E[2;7~, kNXT3=\E[6;3~,
+       kNXT4=\E[6;4~, kNXT5=\E[6;5~, kNXT6=\E[6;6~,
+       kNXT7=\E[6;7~, kPRV3=\E[5;3~, kPRV4=\E[5;4~,
+       kPRV5=\E[5;5~, kPRV6=\E[5;6~, kPRV7=\E[5;7~,
+       use=xterm+edit,
+
+xterm+edit|fragment for 6-key editing-keypad,
+       kdch1=\E[3~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+       use=xterm+pc+edit,
+
+xterm+pc+edit|fragment for pc-style editing keypad,
+       kend=\E[4~, khome=\E[1~,
+
+xterm+vt+edit|fragment for vt220-style editing keypad,
+       kfnd=\E[1~, kslt=\E[4~,
+
+#
 # Those chunks use the new-style (the xterm oldFunctionKeys resource is false).
 # Alternatively, the same scheme with old-style function keys as in xterm-r6
 # is shown here (because that is used in mrxvt and mlterm):
 # Those chunks use the new-style (the xterm oldFunctionKeys resource is false).
 # Alternatively, the same scheme with old-style function keys as in xterm-r6
 # is shown here (because that is used in mrxvt and mlterm):
@@ -3163,8 +3207,8 @@ xterm-basic|modern xterm terminal emulator - common,
        flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
        ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
        ind=^J, invis=\E[8m, is2=\E[!p\E[?3;4l\E[4l\E>, kbs=^H,
        flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
        ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
        ind=^J, invis=\E[8m, is2=\E[!p\E[?3;4l\E[4l\E>, kbs=^H,
-       kdch1=\E[3~, kmous=\E[M, mc0=\E[i, mc4=\E[4i, mc5=\E[5i,
-       meml=\El, memu=\Em, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
+       kmous=\E[M, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, meml=\El,
+       memu=\Em, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
        rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?1049l, rmir=\E[4l,
        rmkx=\E[?1l\E>, rmm=\E[?1034l, rmso=\E[27m, rmul=\E[24m,
        rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>, sc=\E7,
        rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?1049l, rmir=\E[4l,
        rmkx=\E[?1l\E>, rmm=\E[?1034l, rmso=\E[27m, rmul=\E[24m,
        rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>, sc=\E7,
@@ -3310,7 +3354,8 @@ xterm-vt220|xterm emulating vt220,
        kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf20=\E[34~,
        kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
        khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
        kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf20=\E[34~,
        kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
        khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
-       use=xterm-basic, use=vt220+keypad,
+       use=xterm+app, use=xterm+edit, use=xterm-basic,
+       use=vt220+keypad,
 
 xterm-vt52|xterm emulating dec vt52,
        cols#80, it#8, lines#24,
 
 xterm-vt52|xterm emulating dec vt52,
        cols#80, it#8, lines#24,
@@ -3321,11 +3366,11 @@ xterm-vt52|xterm emulating dec vt52,
        kcuf1=\EC, kcuu1=\EA, nel=^M^J, ri=\EI, rmacs=\EG, smacs=\EF,
 
 xterm-noapp|xterm with cursor keys in normal mode,
        kcuf1=\EC, kcuu1=\EA, nel=^M^J, ri=\EI, rmacs=\EG, smacs=\EF,
 
 xterm-noapp|xterm with cursor keys in normal mode,
-       kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, rmcup@,
-       rmkx=\E>, smcup@, smkx=\E=, use=xterm,
+       rmcup@, rmkx=\E>, smcup@, smkx=\E=, use=xterm+noapp,
+       use=xterm,
 
 xterm-24|vs100|xterms|xterm terminal emulator (X Window System),
 
 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),
 
 # This is xterm for ncurses.
 xterm|xterm terminal emulator (X Window System),
@@ -3349,7 +3394,7 @@ xterm+sl-twm|access X title line (pacify twm-descended window managers),
 #
 # xterm with bold instead of underline
 xterm-bold|xterm terminal emulator (X11R6 Window System) standout w/bold,
 #
 # xterm with bold instead of underline
 xterm-bold|xterm terminal emulator (X11R6 Window System) standout w/bold,
-       smso=\E[7m, smul=\E[1m, use=xterm,
+       smso=\E[7m, smul=\E[1m, use=xterm-old,
 # (kterm: this had extension capabilities ":KJ:TY=ascii:" -- esr)
 # (kterm should not invoke DEC Graphics as the alternate character set
 #  -- Kenji Rikitake)
 # (kterm: this had extension capabilities ":KJ:TY=ascii:" -- esr)
 # (kterm should not invoke DEC Graphics as the alternate character set
 #  -- Kenji Rikitake)
@@ -21607,6 +21652,15 @@ v3220|LANPAR Vision II model 3220/3221/3222,
 # 2007-11-03
 #      * correct acsc strings for h19 and z100 (Benjamin Sittler)
 #
 # 2007-11-03
 #      * correct acsc strings for h19 and z100 (Benjamin Sittler)
 #
+# 2007-11-11
+#      * use xterm-xf86-v44 for "xterm-xfree86", reflecting changes to
+#        xterm starting with patch #216 -TD
+#      * make legacy xterm entries such as xterm-24 inherit from xterm-old,
+#        to match xterm #230 -TD
+#      * extend xterm+pccX entries to match xterm #230 -TD
+#      * add xterm+app, xterm+noapp, from xterm #230 -TD
+#      * add/use xterm+pce2 from xterm #230, in xterm+pcfkeys -TD
+#
 # The following sets edit modes for GNU EMACS.
 # Local Variables:
 # fill-prefix:"\t"
 # The following sets edit modes for GNU EMACS.
 # Local Variables:
 # fill-prefix:"\t"
index b5b07140b55fb364e56f910de224d400f305fa51..09857834e7e06d90bbf95511ff864c2d91790941 100755 (executable)
@@ -2,10 +2,10 @@
 #
 # MKlib_gen.sh -- generate sources from curses.h macro definitions
 #
 #
 # MKlib_gen.sh -- generate sources from curses.h macro definitions
 #
-# ($Id: MKlib_gen.sh,v 1.29 2007/08/18 13:17:14 tom Exp $)
+# ($Id: MKlib_gen.sh,v 1.30 2008/01/05 23:21:10 tom Exp $)
 #
 ##############################################################################
 #
 ##############################################################################
-# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2007,2008 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"), #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -422,4 +422,5 @@ $preprocessor $TMP 2>/dev/null \
 | sed \
        -e 's/^.*T_CALLED.*returnCode( \([a-z].*) \));/ return \1;/' \
        -e 's/^.*T_CALLED.*returnCode( \((wmove.*) \));/        return \1;/' \
 | sed \
        -e 's/^.*T_CALLED.*returnCode( \([a-z].*) \));/ return \1;/' \
        -e 's/^.*T_CALLED.*returnCode( \((wmove.*) \));/        return \1;/' \
+       -e 's/gen_//' \
 | sed -f $ED4
 | sed -f $ED4
index 2b1387ad7a027ddc217821f83bf3511067cc504c..8c15de8b05bf88e6bd080e5fabe191995f641a82 100644 (file)
@@ -44,7 +44,7 @@
 #include <term.h>              /* cur_term */
 #include <tic.h>
 
 #include <term.h>              /* cur_term */
 #include <tic.h>
 
-MODULE_ID("$Id: lib_set_term.c,v 1.100 2007/09/08 21:23:43 tom Exp $")
+MODULE_ID("$Id: lib_set_term.c,v 1.102 2007/12/29 20:36:32 tom Exp $")
 
 NCURSES_EXPORT(SCREEN *)
 set_term(SCREEN *screenp)
 
 NCURSES_EXPORT(SCREEN *)
 set_term(SCREEN *screenp)
@@ -221,9 +221,6 @@ extract_fgbg(char *src, int *result)
 }
 #endif
 
 }
 #endif
 
-#define ripoff_sp      _nc_prescreen.rsp
-#define ripoff_stack   _nc_prescreen.rippedoff
-
 /* OS-independent screen initializations */
 NCURSES_EXPORT(int)
 _nc_setupscreen(int slines GCC_UNUSED,
 /* OS-independent screen initializations */
 NCURSES_EXPORT(int)
 _nc_setupscreen(int slines GCC_UNUSED,
@@ -568,10 +565,12 @@ _nc_setupscreen(int slines GCC_UNUSED,
                        ? SP->_lines_avail - count
                        : 0),
                       0);
                        ? SP->_lines_avail - count
                        : 0),
                       0);
-           if (w)
+           if (w) {
+               rop->win = w;
                rop->hook(w, scolumns);
                rop->hook(w, scolumns);
-           else
+           } else {
                returnCode(ERR);
                returnCode(ERR);
+           }
            if (rop->line < 0)
                bottom_stolen += count;
            else
            if (rop->line < 0)
                bottom_stolen += count;
            else
@@ -622,6 +621,7 @@ _nc_ripoffline(int line, int (*init) (WINDOW *, int))
 NCURSES_EXPORT(int)
 ripoffline(int line, int (*init) (WINDOW *, int))
 {
 NCURSES_EXPORT(int)
 ripoffline(int line, int (*init) (WINDOW *, int))
 {
+    START_TRACE();
     T((T_CALLED("ripoffline(%d,%p)"), line, init));
 
     if (line == 0)
     T((T_CALLED("ripoffline(%d,%p)"), line, init));
 
     if (line == 0)
index 99edcd538ec53baf6806040df3d2cbaf99c7574b..946ceeaf0e0d00d0b1207d662ccad5f5cdb02f4b 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998-2001,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2007 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            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -29,6 +29,8 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Juergen Pfeifer                         1996-1999               *
+ *     and: Thomas E. Dickey                        1996-on                 *
  ****************************************************************************/
 
 /*
  ****************************************************************************/
 
 /*
  */
 #include <curses.priv.h>
 
  */
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_slkclear.c,v 1.9 2006/05/27 19:21:19 tom Exp $")
+MODULE_ID("$Id: lib_slkclear.c,v 1.10 2007/12/29 17:51:47 tom Exp $")
 
 NCURSES_EXPORT(int)
 slk_clear(void)
 {
 
 NCURSES_EXPORT(int)
 slk_clear(void)
 {
+    int rc = ERR;
+
     T((T_CALLED("slk_clear()")));
 
     T((T_CALLED("slk_clear()")));
 
-    if (SP == NULL || SP->_slk == NULL)
-       returnCode(ERR);
-    SP->_slk->hidden = TRUE;
-    /* For simulated SLK's it's looks much more natural to
-       inherit those attributes from the standard screen */
-    SP->_slk->win->_nc_bkgd = stdscr->_nc_bkgd;
-    WINDOW_ATTRS(SP->_slk->win) = WINDOW_ATTRS(stdscr);
-    if (SP->_slk->win == stdscr) {
-       returnCode(OK);
-    } else {
-       werase(SP->_slk->win);
-       returnCode(wrefresh(SP->_slk->win));
+    if (SP != NULL && SP->_slk != NULL) {
+       SP->_slk->hidden = TRUE;
+       /* For simulated SLK's it looks much more natural to
+          inherit those attributes from the standard screen */
+       SP->_slk->win->_nc_bkgd = stdscr->_nc_bkgd;
+       WINDOW_ATTRS(SP->_slk->win) = WINDOW_ATTRS(stdscr);
+       if (SP->_slk->win == stdscr) {
+           rc = OK;
+       } else {
+           werase(SP->_slk->win);
+           rc = wrefresh(SP->_slk->win);
+       }
     }
     }
+    returnCode(rc);
 }
 }
index 8bea743a3d22552b0ea39441e6f2c37334291609..b2cff21677bb838bb97a0bb795a045c9c28988b3 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 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            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -41,7 +41,7 @@
 #include <curses.priv.h>
 #include <term.h>
 
 #include <curses.priv.h>
 #include <term.h>
 
-MODULE_ID("$Id: resizeterm.c,v 1.24 2007/12/22 23:20:31 tom Exp $")
+MODULE_ID("$Id: resizeterm.c,v 1.28 2008/01/06 01:23:36 tom Exp $")
 
 #define stolen_lines (screen_lines - SP->_lines_avail)
 
 
 #define stolen_lines (screen_lines - SP->_lines_avail)
 
@@ -81,6 +81,10 @@ show_window_sizes(const char *name)
 }
 #endif
 
 }
 #endif
 
+/*
+ * Return true if the given dimensions do not match the internal terminal
+ * structure's size.
+ */
 NCURSES_EXPORT(bool)
 is_term_resized(int ToLines, int ToCols)
 {
 NCURSES_EXPORT(bool)
 is_term_resized(int ToLines, int ToCols)
 {
@@ -91,6 +95,48 @@ is_term_resized(int ToLines, int ToCols)
                   || ToCols != screen_columns));
 }
 
                   || ToCols != screen_columns));
 }
 
+/*
+ */
+static ripoff_t *
+ripped_window(WINDOW *win)
+{
+    ripoff_t *result = 0;
+    ripoff_t *rop;
+
+    if (win != 0) {
+       for (rop = ripoff_stack; (rop - ripoff_stack) < N_RIPS; rop++) {
+           if (rop->win == win && rop->line != 0) {
+               result = rop;
+               break;
+           }
+       }
+    }
+    return result;
+}
+
+/*
+ * Returns the number of lines from the bottom for the beginning of a ripped
+ * off window.
+ */
+static int
+ripped_bottom(WINDOW *win)
+{
+    int result = 0;
+    ripoff_t *rop;
+
+    if (win != 0) {
+       for (rop = ripoff_stack; (rop - ripoff_stack) < N_RIPS; rop++) {
+           if (rop->line < 0) {
+               result -= rop->line;
+               if (rop->win == win) {
+                   break;
+               }
+           }
+       }
+    }
+    return result;
+}
+
 /*
  * Return the number of levels of child-windows under the current window.
  */
 /*
  * Return the number of levels of child-windows under the current window.
  */
@@ -141,13 +187,27 @@ adjust_window(WINDOW *win, int ToLines, int ToCols, int stolen EXTRA_DCLS)
     int bottom = CurLines + SP->_topstolen - stolen;
     int myLines = win->_maxy + 1;
     int myCols = win->_maxx + 1;
     int bottom = CurLines + SP->_topstolen - stolen;
     int myLines = win->_maxy + 1;
     int myCols = win->_maxx + 1;
+    ripoff_t *rop = ripped_window(win);
 
 
-    T((T_CALLED("adjust_window(%p,%d,%d) currently %ldx%ld at %ld,%ld"),
+    T((T_CALLED("adjust_window(%p,%d,%d)%s depth %d/%d currently %ldx%ld at %ld,%ld"),
        win, ToLines, ToCols,
        win, ToLines, ToCols,
+       (rop != 0) ? " (rip)" : "",
+       parent_depth(win),
+       child_depth(win),
        (long) getmaxy(win), (long) getmaxx(win),
        (long) getmaxy(win), (long) getmaxx(win),
-       (long) getbegy(win), (long) getbegx(win)));
-
-    if (win->_begy >= bottom) {
+       (long) getbegy(win) + win->_yoffset, (long) getbegx(win)));
+
+    if (rop != 0 && rop->line < 0) {
+       /*
+        * If it is a ripped-off window at the bottom of the screen, simply
+        * move it to the same relative position.
+        */
+       win->_begy = ToLines - ripped_bottom(win) - 0 - win->_yoffset;
+    } else if (win->_begy >= bottom) {
+       /*
+        * If it is below the bottom of the new screen, move up by the same
+        * amount that the screen shrank.
+        */
        win->_begy += (ToLines - CurLines);
     } else {
        if (myLines == CurLines - stolen
        win->_begy += (ToLines - CurLines);
     } else {
        if (myLines == CurLines - stolen
@@ -347,13 +407,45 @@ resizeterm(int ToLines, int ToCols)
        SP->_sig_winch = FALSE;
 
        if (is_term_resized(ToLines, ToCols)) {
        SP->_sig_winch = FALSE;
 
        if (is_term_resized(ToLines, ToCols)) {
+#if USE_SIGWINCH
+           ripoff_t *rop;
+           bool slk_visible = (SP != 0
+                               && SP->_slk != 0
+                               && !(SP->_slk->hidden));
+
+           if (slk_visible) {
+               slk_clear();
+           }
+#endif
+           result = resize_term(ToLines, ToCols);
 
 #if USE_SIGWINCH
            ungetch(KEY_RESIZE);        /* so application can know this */
            clearok(curscr, TRUE);      /* screen contents are unknown */
 
 #if USE_SIGWINCH
            ungetch(KEY_RESIZE);        /* so application can know this */
            clearok(curscr, TRUE);      /* screen contents are unknown */
-#endif
 
 
-           result = resize_term(ToLines, ToCols);
+           /* ripped-off lines are a special case: if we did not lengthen
+            * them, we haven't moved them either.  repaint them, too.
+            */
+           for (rop = ripoff_stack; (rop - ripoff_stack) < N_RIPS; rop++) {
+               if (rop->win != stdscr
+                   && rop->win != 0
+                   && rop->line < 0) {
+
+                   if (rop->hook != _nc_slk_initialize) {
+                       touchwin(rop->win);
+                       wnoutrefresh(rop->win);
+                   }
+               }
+           }
+
+           /* soft-keys are a special case: we _know_ how to repaint them */
+           if (slk_visible) {
+               slk_restore();
+               slk_touch();
+
+               slk_refresh();
+           }
+#endif
        }
     }
 
        }
     }
 
index 54ffc8ec49a580fd8e573d0ee1c7fbce79159834..484fd19340aa4612f147c1d1677dd8e5159ed7bb 100644 (file)
@@ -34,7 +34,7 @@
 
 
 /*
 
 
 /*
- * $Id: curses.priv.h,v 1.353 2007/12/23 00:15:38 tom Exp $
+ * $Id: curses.priv.h,v 1.355 2007/12/29 20:32:54 tom Exp $
  *
  *     curses.priv.h
  *
  *
  *     curses.priv.h
  *
@@ -417,6 +417,7 @@ typedef struct _SLK {
 #endif /* USE_TERMLIB */
 
 typedef        struct {
 #endif /* USE_TERMLIB */
 
 typedef        struct {
+       WINDOW *win;            /* the window used in the hook      */
        int     line;           /* lines to take, < 0 => from bottom*/
        int     (*hook)(WINDOW *, int); /* callback for user        */
 } ripoff_t;
        int     line;           /* lines to take, < 0 => from bottom*/
        int     (*hook)(WINDOW *, int); /* callback for user        */
 } ripoff_t;
@@ -623,6 +624,9 @@ typedef struct {
 #endif
 } NCURSES_PRESCREEN;
 
 #endif
 } NCURSES_PRESCREEN;
 
+#define ripoff_sp      _nc_prescreen.rsp
+#define ripoff_stack   _nc_prescreen.rippedoff
+
 extern NCURSES_EXPORT_VAR(NCURSES_PRESCREEN) _nc_prescreen;
 
 /*
 extern NCURSES_EXPORT_VAR(NCURSES_PRESCREEN) _nc_prescreen;
 
 /*
index 225935ea79f084b8e62e55d978ffd1f4a4fafbd9..d7f3b59a36e32c9535a797b371f48bbcd4b526b4 100644 (file)
@@ -41,7 +41,7 @@
 
 #include <curses.priv.h>
 
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_data.c,v 1.34 2007/10/20 21:49:10 tom Exp $")
+MODULE_ID("$Id: lib_data.c,v 1.35 2007/12/29 20:29:27 tom Exp $")
 
 /*
  * OS/2's native linker complains if we don't initialize public data when
 
 /*
  * OS/2's native linker complains if we don't initialize public data when
@@ -191,7 +191,7 @@ NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_globals = {
 #define STACK_FRAME_0s { STACK_FRAME_0 }
 #define NUM_VARS_0s    { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }
 
 #define STACK_FRAME_0s { STACK_FRAME_0 }
 #define NUM_VARS_0s    { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }
 
-#define RIPOFF_0       { 0,0 }
+#define RIPOFF_0       { 0,0,0 }
 #define RIPOFF_0s      { RIPOFF_0 }
 
 NCURSES_EXPORT_VAR(NCURSES_PRESCREEN) _nc_prescreen = {
 #define RIPOFF_0s      { RIPOFF_0 }
 
 NCURSES_EXPORT_VAR(NCURSES_PRESCREEN) _nc_prescreen = {
index 9b74ba00d542485780cb11d2e4b0ddefcf8a4606..99db6bbb057f41e1d92a7fa2a3dbd70b115b8a05 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 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            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -42,7 +42,7 @@
 
 #include <dump_entry.h>
 
 
 #include <dump_entry.h>
 
-MODULE_ID("$Id: infocmp.c,v 1.94 2007/11/17 23:34:26 tom Exp $")
+MODULE_ID("$Id: infocmp.c,v 1.95 2008/01/05 20:53:20 tom Exp $")
 
 #define L_CURL "{"
 #define R_CURL "}"
 
 #define L_CURL "{"
 #define R_CURL "}"
@@ -1450,7 +1450,7 @@ main(int argc, char *argv[])
        }
     }
 
        }
     }
 
-    maxterms = (argc + 1 - optind);
+    maxterms = (argc + 2 - optind);
     tfile = typeMalloc(path, maxterms);
     tname = typeCalloc(char *, maxterms);
     entries = typeCalloc(ENTRY, maxterms);
     tfile = typeMalloc(path, maxterms);
     tname = typeCalloc(char *, maxterms);
     entries = typeCalloc(ENTRY, maxterms);
index 6bcff07f53e30e933b1eb86c27a69fb75d8e5fa8..38b85cb362ed0918fd1975b29fabdce782a21c11 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
 /****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 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            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -44,7 +44,7 @@
 #include <hashed_db.h>
 #endif
 
 #include <hashed_db.h>
 #endif
 
-MODULE_ID("$Id: toe.c,v 1.46 2007/10/13 22:26:38 tom Exp $")
+MODULE_ID("$Id: toe.c,v 1.48 2008/01/05 20:41:26 tom Exp $")
 
 #define isDotname(name) (!strcmp(name, ".") || !strcmp(name, ".."))
 
 
 #define isDotname(name) (!strcmp(name, ".") || !strcmp(name, ".."))
 
@@ -316,6 +316,7 @@ main(int argc, char *argv[])
     bool direct_dependencies = FALSE;
     bool invert_dependencies = FALSE;
     bool header = FALSE;
     bool direct_dependencies = FALSE;
     bool invert_dependencies = FALSE;
     bool header = FALSE;
+    char *report_file = 0;
     int i;
     int code;
     int this_opt, last_opt = '?';
     int i;
     int code;
     int this_opt, last_opt = '?';
@@ -323,7 +324,7 @@ main(int argc, char *argv[])
 
     _nc_progname = _nc_rootname(argv[0]);
 
 
     _nc_progname = _nc_rootname(argv[0]);
 
-    while ((this_opt = getopt(argc, argv, "0123456789ahuvUV")) != -1) {
+    while ((this_opt = getopt(argc, argv, "0123456789ahu:vU:V")) != -1) {
        /* handle optional parameter */
        if (isdigit(this_opt)) {
            switch (last_opt) {
        /* handle optional parameter */
        if (isdigit(this_opt)) {
            switch (last_opt) {
@@ -349,12 +350,14 @@ main(int argc, char *argv[])
            break;
        case 'u':
            direct_dependencies = TRUE;
            break;
        case 'u':
            direct_dependencies = TRUE;
+           report_file = optarg;
            break;
        case 'v':
            v_opt = 1;
            break;
        case 'U':
            invert_dependencies = TRUE;
            break;
        case 'v':
            v_opt = 1;
            break;
        case 'U':
            invert_dependencies = TRUE;
+           report_file = optarg;
            break;
        case 'V':
            puts(curses_version());
            break;
        case 'V':
            puts(curses_version());
@@ -365,15 +368,15 @@ main(int argc, char *argv[])
     }
     set_trace_level(v_opt);
 
     }
     set_trace_level(v_opt);
 
-    if (direct_dependencies || invert_dependencies) {
-       if (freopen(argv[optind], "r", stdin) == 0) {
+    if (report_file != 0) {
+       if (freopen(report_file, "r", stdin) == 0) {
            (void) fflush(stdout);
            (void) fflush(stdout);
-           fprintf(stderr, "%s: can't open %s\n", _nc_progname, argv[optind]);
+           fprintf(stderr, "%s: can't open %s\n", _nc_progname, report_file);
            ExitProgram(EXIT_FAILURE);
        }
 
        /* parse entries out of the source file */
            ExitProgram(EXIT_FAILURE);
        }
 
        /* parse entries out of the source file */
-       _nc_set_source(argv[optind]);
+       _nc_set_source(report_file);
        _nc_read_entry_source(stdin, 0, FALSE, FALSE, NULLHOOK);
     }
 
        _nc_read_entry_source(stdin, 0, FALSE, FALSE, NULLHOOK);
     }
 
index e349da211e406fa9eb1f53fae529eaeb7b498826..91acade3c8daea53b3edaf1c2f0adfd82aa73f3c 100644 (file)
@@ -40,7 +40,7 @@ AUTHOR
    Author: Eric S. Raymond <esr@snark.thyrsus.com> 1993
            Thomas E. Dickey (beginning revision 1.27 in 1996).
 
    Author: Eric S. Raymond <esr@snark.thyrsus.com> 1993
            Thomas E. Dickey (beginning revision 1.27 in 1996).
 
-$Id: ncurses.c,v 1.292 2007/07/21 17:41:55 tom Exp $
+$Id: ncurses.c,v 1.296 2007/12/29 21:05:43 tom Exp $
 
 ***************************************************************************/
 
 
 ***************************************************************************/
 
@@ -608,6 +608,20 @@ remember_boxes(unsigned level, WINDOW *txt_win, WINDOW *box_win)
     winstack[level].frame = box_win;
 }
 
     winstack[level].frame = box_win;
 }
 
+#if USE_SOFTKEYS && (NCURSES_VERSION_PATCH < 20071229)
+static void
+slk_repaint(void)
+{
+    /* this chunk is now done in resize_term() */
+    slk_touch();
+    slk_clear();
+    slk_noutrefresh();
+}
+
+#else
+#define slk_repaint()          /* nothing */
+#endif
+
 /*
  * For wgetch_test(), we create pairs of windows - one for a box, one for text.
  * Resize both and paint the box in the parent.
 /*
  * For wgetch_test(), we create pairs of windows - one for a box, one for text.
  * Resize both and paint the box in the parent.
@@ -623,12 +637,7 @@ resize_boxes(unsigned level, WINDOW *win)
     touchwin(stdscr);
     wnoutrefresh(stdscr);
 
     touchwin(stdscr);
     wnoutrefresh(stdscr);
 
-#if USE_SOFTKEYS
-    /* FIXME: this chunk should be done in resizeterm() */
-    slk_touch();
-    slk_clear();
-    slk_noutrefresh();
-#endif
+    slk_repaint();
 
     for (n = 0; n < level; ++n) {
        wresize(winstack[n].frame, high, wide);
 
     for (n = 0; n < level; ++n) {
        wresize(winstack[n].frame, high, wide);
@@ -829,6 +838,8 @@ static void
 getch_test(void)
 {
     int delay = begin_getch_test();
 getch_test(void)
 {
     int delay = begin_getch_test();
+
+    slk_restore();
     wgetch_test(0, stdscr, delay);
     forget_boxes();
     finish_getch_test();
     wgetch_test(0, stdscr, delay);
     forget_boxes();
     finish_getch_test();
@@ -836,7 +847,7 @@ getch_test(void)
 
 #if USE_WIDEC_SUPPORT
 /*
 
 #if USE_WIDEC_SUPPORT
 /*
- * For wgetch_test(), we create pairs of windows - one for a box, one for text.
+ * For wget_wch_test(), we create pairs of windows - one for a box, one for text.
  * Resize both and paint the box in the parent.
  */
 #ifdef KEY_RESIZE
  * Resize both and paint the box in the parent.
  */
 #ifdef KEY_RESIZE
@@ -851,12 +862,7 @@ resize_wide_boxes(unsigned level, WINDOW *win)
     touchwin(stdscr);
     wnoutrefresh(stdscr);
 
     touchwin(stdscr);
     wnoutrefresh(stdscr);
 
-#if USE_SOFTKEYS
-    /* FIXME: this chunk should be done in resizeterm() */
-    slk_touch();
-    slk_clear();
-    slk_noutrefresh();
-#endif
+    slk_repaint();
 
     for (n = 0; n < level; ++n) {
        wresize(winstack[n].frame, high, wide);
 
     for (n = 0; n < level; ++n) {
        wresize(winstack[n].frame, high, wide);
@@ -1044,6 +1050,8 @@ static void
 get_wch_test(void)
 {
     int delay = begin_getch_test();
 get_wch_test(void)
 {
     int delay = begin_getch_test();
+
+    slk_restore();
     wget_wch_test(0, stdscr, delay);
     forget_boxes();
     finish_getch_test();
     wget_wch_test(0, stdscr, delay);
     forget_boxes();
     finish_getch_test();
@@ -2515,12 +2523,15 @@ slk_test(void)
            }
            break;
 #endif
            }
            break;
 #endif
+#if defined(NCURSES_VERSION) && defined(KEY_RESIZE) && HAVE_WRESIZE
+       case KEY_RESIZE:
+           break;
+#endif
 
        default:
            beep();
        }
 
        default:
            beep();
        }
-    } while
-       ((c = Getchar()) != EOF);
+    } while (!isQuit(c = Getchar()));
 
   done:
     slk_clear();
 
   done:
     slk_clear();
@@ -2642,12 +2653,14 @@ wide_slk_test(void)
                call_slk_color(fg, bg);
            }
            break;
                call_slk_color(fg, bg);
            }
            break;
-
+#if defined(NCURSES_VERSION) && defined(KEY_RESIZE) && HAVE_WRESIZE
+       case KEY_RESIZE:
+           break;
+#endif
        default:
            beep();
        }
        default:
            beep();
        }
-    } while
-       ((c = Getchar()) != EOF);
+    } while (!isQuit(c = Getchar()));
 
   done:
     slk_clear();
 
   done:
     slk_clear();
@@ -6026,7 +6039,7 @@ rip_footer(WINDOW *win, int cols)
     wbkgd(win, A_REVERSE);
     werase(win);
     wmove(win, 0, 0);
     wbkgd(win, A_REVERSE);
     werase(win);
     wmove(win, 0, 0);
-    wprintw(win, "footer: %d columns", cols);
+    wprintw(win, "footer: window %p, %d columns", win, cols);
     wnoutrefresh(win);
     return OK;
 }
     wnoutrefresh(win);
     return OK;
 }
@@ -6037,7 +6050,7 @@ rip_header(WINDOW *win, int cols)
     wbkgd(win, A_REVERSE);
     werase(win);
     wmove(win, 0, 0);
     wbkgd(win, A_REVERSE);
     werase(win);
     wmove(win, 0, 0);
-    wprintw(win, "header: %d columns", cols);
+    wprintw(win, "header: window %p, %d columns", win, cols);
     wnoutrefresh(win);
     return OK;
 }
     wnoutrefresh(win);
     return OK;
 }