ncurses/ncurses-6.0-20151128.patch

613 lines
22 KiB
Diff
Raw Permalink Normal View History

# ncurses 6.0 - patch 20151128 - Thomas E. Dickey
#
# ------------------------------------------------------------------------------
#
# Ncurses 6.0 is at
# ftp.gnu.org:/pub/gnu
#
# Patches for ncurses 6.0 can be found at
# ftp://invisible-island.net/ncurses/6.0
# http://invisible-mirror.net/archives/ncurses/6.0
#
# ------------------------------------------------------------------------------
# ftp://invisible-island.net/ncurses/6.0/ncurses-6.0-20151128.patch.gz
# patch by Thomas E. Dickey <dickey@invisible-island.net>
# created Sun Nov 29 01:57:16 UTC 2015
# ------------------------------------------------------------------------------
# NEWS | 11 ++++++++-
# VERSION | 2 -
# dist.mk | 4 +--
# form/form.h | 5 ++--
# form/form.priv.h | 7 +++--
# form/frm_driver.c | 12 ++++++----
# man/curs_inopts.3x | 12 +++++-----
# man/form_field_opts.3x | 9 +++++--
# misc/terminfo.src | 26 ++++++++++++++++++++-
# ncurses/base/lib_getch.c | 4 ++-
# package/debian-mingw/changelog | 4 +--
# package/debian-mingw64/changelog | 4 +--
# package/debian/changelog | 4 +--
# package/mingw-ncurses.nsi | 4 +--
# package/mingw-ncurses.spec | 2 -
# package/ncurses.spec | 2 -
# progs/dump_entry.c | 6 ++++-
# test/ncurses.c | 44 +++++++++++++++++++++++++------------
# 18 files changed, 112 insertions(+), 50 deletions(-)
# ------------------------------------------------------------------------------
Index: NEWS
Prereq: 1.2530
--- ncurses-6.0-20151121+/NEWS 2015-11-21 23:33:30.000000000 +0000
+++ ncurses-6.0-20151128/NEWS 2015-11-29 01:31:02.000000000 +0000
@@ -25,7 +25,7 @@
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: NEWS,v 1.2530 2015/11/21 23:33:30 tom Exp $
+-- $Id: NEWS,v 1.2536 2015/11/29 01:31:02 tom Exp $
-------------------------------------------------------------------------------
This is a log of changes that ncurses has gone through since Zeyd started
@@ -45,6 +45,15 @@
Changes through 1.9.9e did not credit all contributions;
it is not possible to add this information.
+20151128
+ + add missing assignment in lib_getch.c to make notimeout() work
+ (Debian #805618).
+ + add 't' toggle for notimeout() function in test/ncurses.c a/A screens
+ + add viewdata terminal description (Alexandre Montaron).
+ + fix a case in tic/infocmp for formatting capabilities where a
+ backslash at the end of a string was mishandled.
+ + fix some typos in curs_inopts.3x (Benno Schulenberg).
+
20151121
+ fix some inconsistencies in the pccon* entries -TD
+ add bold to pccon+sgr+acs and pccon-base (Tati Chevron).
Index: VERSION
--- ncurses-6.0-20151121+/VERSION 2015-11-21 15:55:51.000000000 +0000
+++ ncurses-6.0-20151128/VERSION 2015-11-28 16:31:05.000000000 +0000
@@ -1 +1 @@
-5:0:9 6.0 20151121
+5:0:9 6.0 20151128
Index: dist.mk
Prereq: 1.1080
--- ncurses-6.0-20151121+/dist.mk 2015-11-21 15:55:51.000000000 +0000
+++ ncurses-6.0-20151128/dist.mk 2015-11-28 16:31:05.000000000 +0000
@@ -25,7 +25,7 @@
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: dist.mk,v 1.1080 2015/11/21 15:55:51 tom Exp $
+# $Id: dist.mk,v 1.1081 2015/11/28 16:31:05 tom Exp $
# Makefile for creating ncurses distributions.
#
# This only needs to be used directly as a makefile by developers, but
@@ -37,7 +37,7 @@
# These define the major/minor/patch versions of ncurses.
NCURSES_MAJOR = 6
NCURSES_MINOR = 0
-NCURSES_PATCH = 20151121
+NCURSES_PATCH = 20151128
# We don't append the patch to the version, since this only applies to releases
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
Index: form/form.h
Prereq: 0.24
--- ncurses-6.0-20151121+/form/form.h 2014-07-26 20:52:28.000000000 +0000
+++ ncurses-6.0-20151128/form/form.h 2015-11-28 20:13:39.000000000 +0000
@@ -1,5 +1,5 @@
/****************************************************************************
- * 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 *
@@ -30,7 +30,7 @@
* Author: Juergen Pfeifer, 1995,1997 *
****************************************************************************/
-/* $Id: form.h,v 0.24 2014/07/26 20:52:28 tom Exp $ */
+/* $Id: form.h,v 0.25 2015/11/28 20:13:39 Leon.Winter Exp $ */
#ifndef FORM_H
#define FORM_H
@@ -205,6 +205,7 @@
#define O_PASSOK (0x0100U)
#define O_STATIC (0x0200U)
#define O_DYNAMIC_JUSTIFY (0x0400U) /* ncurses extension */
+#define O_NO_LEFT_STRIP (0x0800U) /* ncurses extension */
/* form options */
#define O_NL_OVERLOAD (0x0001U)
Index: form/form.priv.h
Prereq: 0.38
--- ncurses-6.0-20151121+/form/form.priv.h 2014-11-01 13:56:14.000000000 +0000
+++ ncurses-6.0-20151128/form/form.priv.h 2015-11-28 20:13:39.000000000 +0000
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright (c) 1998-2012,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 *
@@ -30,7 +30,7 @@
* Author: Juergen Pfeifer, 1995,1997 *
****************************************************************************/
-/* $Id: form.priv.h,v 0.38 2014/11/01 13:56:14 tom Exp $ */
+/* $Id: form.priv.h,v 0.39 2015/11/28 20:13:39 Leon.Winter Exp $ */
#ifndef FORM_PRIV_H
#define FORM_PRIV_H 1
@@ -162,7 +162,8 @@
#define ALL_FIELD_OPTS (Field_Options)( \
STD_FIELD_OPTS |\
- O_DYNAMIC_JUSTIFY)
+ O_DYNAMIC_JUSTIFY |\
+ O_NO_LEFT_STRIP)
#define C_BLANK ' '
#define is_blank(c) ((c)==C_BLANK)
Index: form/frm_driver.c
Prereq: 1.115
--- ncurses-6.0-20151121+/form/frm_driver.c 2014-09-25 21:55:24.000000000 +0000
+++ ncurses-6.0-20151128/form/frm_driver.c 2015-11-28 20:39:09.000000000 +0000
@@ -1,5 +1,5 @@
/****************************************************************************
- * 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 *
@@ -32,7 +32,7 @@
#include "form.priv.h"
-MODULE_ID("$Id: frm_driver.c,v 1.115 2014/09/25 21:55:24 tom Exp $")
+MODULE_ID("$Id: frm_driver.c,v 1.117 2015/11/28 20:39:09 tom Exp $")
/*----------------------------------------------------------------------------
This is the core module of the form library. It contains the majority
@@ -979,7 +979,9 @@
int len;
int col = 0;
- bp = Get_Start_Of_Data(field->buf, Buffer_Length(field));
+ bp = (Field_Has_Option(field, O_NO_LEFT_STRIP)
+ ? field->buf
+ : Get_Start_Of_Data(field->buf, Buffer_Length(field)));
len = (int)(After_End_Of_Data(field->buf, Buffer_Length(field)) - bp);
if (len > 0)
@@ -1023,7 +1025,9 @@
FIELD_CELL *bp;
int len;
- bp = Get_Start_Of_Data(field->buf, Buffer_Length(field));
+ bp = (Field_Has_Option(field, O_NO_LEFT_STRIP)
+ ? field->buf
+ : Get_Start_Of_Data(field->buf, Buffer_Length(field)));
len = (int)(After_End_Of_Data(field->buf, Buffer_Length(field)) - bp);
if (len > 0)
Index: man/curs_inopts.3x
Prereq: 1.19
--- ncurses-6.0-20151121+/man/curs_inopts.3x 2015-04-11 10:21:38.000000000 +0000
+++ ncurses-6.0-20151128/man/curs_inopts.3x 2015-11-28 19:03:12.000000000 +0000
@@ -26,7 +26,7 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_inopts.3x,v 1.19 2015/04/11 10:21:38 tom Exp $
+.\" $Id: curs_inopts.3x,v 1.20 2015/11/28 19:03:12 Benno.Schulenberg Exp $
.TH curs_inopts 3X ""
.ie \n(.g .ds `` \(lq
.el .ds `` ``
@@ -93,7 +93,7 @@
.br
.SH DESCRIPTION
The \fBncurses\fP library provides several functions which let an application
-change way input from the terminal is handled.
+change the way input from the terminal is handled.
Some are global, applying to all windows.
Others apply only to a specific window.
Window-specific settings are not automatically applied to new or derived
@@ -141,19 +141,19 @@
available to the program.
However, after blocking for \fItenths\fR tenths of
seconds, ERR is returned if nothing has been typed.
-The value of \fBtenths\fR
+The value of \fItenths\fR
must be a number between 1 and 255.
Use \fBnocbreak\fR to leave half-delay
mode.
.\"
.SS intrflush
.PP
-If the \fBintrflush\fR option is enabled, (\fIbf\fR is \fBTRUE\fR), when an
-interrupt key is pressed on the keyboard (interrupt, break, quit) all output in
+If the \fBintrflush\fR option is enabled (\fIbf\fR is \fBTRUE\fR), and an
+interrupt key is pressed on the keyboard (interrupt, break, quit), all output in
the tty driver queue will be flushed, giving the effect of faster response to
the interrupt, but causing \fBcurses\fR to have the wrong idea of what is on
the screen.
-Disabling (\fIbf\fR is \fBFALSE\fR), the option prevents the
+Disabling the option (\fIbf\fR is \fBFALSE\fR) prevents the
flush.
The default for the option is inherited from the tty driver settings.
The window argument is ignored.
Index: man/form_field_opts.3x
Prereq: 1.17
--- ncurses-6.0-20151121+/man/form_field_opts.3x 2014-07-26 21:21:57.000000000 +0000
+++ ncurses-6.0-20151128/man/form_field_opts.3x 2015-11-28 20:40:13.000000000 +0000
@@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
-.\" Copyright (c) 1998-2010,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 *
@@ -27,7 +27,7 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_field_opts.3x,v 1.17 2014/07/26 21:21:57 tom Exp $
+.\" $Id: form_field_opts.3x,v 1.19 2015/11/28 20:40:13 tom Exp $
.TH form_field_opts 3X ""
.SH NAME
\fBform_field_opts\fR \- set and get field options
@@ -91,10 +91,13 @@
Words that do not fit on a line are wrapped to the next line. Words are
blank-separated.
.PP
-One extension option is defined (extensions are off by default):
+These extension options are defined (extensions are off by default):
.TP 5
O_DYNAMIC_JUSTIFY
Permit dynamic fields to be justified, like static fields.
+.TP 5
+O_NO_LEFT_STRIP
+Preserve leading whitespace in the field buffer, which is normally discarded.
.SH RETURN VALUE
Except for \fBfield_opts\fR, each routine returns one of the following:
.TP 5
Index: misc/terminfo.src
--- ncurses-6.0-20151121+/misc/terminfo.src 2015-11-22 01:01:00.000000000 +0000
+++ ncurses-6.0-20151128/misc/terminfo.src 2015-11-28 21:35:00.000000000 +0000
@@ -6,8 +6,8 @@
# Report bugs and new terminal descriptions to
# bug-ncurses@gnu.org
#
-# $Revision: 1.558 $
-# $Date: 2015/11/22 01:01:00 $
+# $Revision: 1.559 $
+# $Date: 2015/11/28 21:35:00 $
#
# 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
@@ -18753,6 +18753,25 @@
sgr0=\EI\E\\\EB, smacs=^N, .invis=\E@, .rs2=^L\EB,
.u8=\001Cu|\004, use=minitel1b,
+# From: Alexandre Montaron, 19 Nov 2015
+#
+# He comments:
+# viewdata lacks a true cup capabilitie,
+# so I achieved it with home and cud1/cuf1 sequences only !
+viewdata|prestel/viewdata terminals,
+ am, bw, eslok, hz,
+ cols#40, lines#24,
+ bel=^G, civis=^T, clear=^L, cnorm=^Q, cr=^M, cub1=^H, cud1=^J,
+ cuf1=^I,
+ cup=\036%?%p1%{07}%>%t\n\n\n\n\n\n\n\n%;%?%p1%{15}%>%t\n\n\n\n\n\n\n\n%;%?%p1%{4}%&%t\n\n\n\n%;%?%p1%{2}%&%t\n\n%;%?%p1%{1}%&%t\n%;%?%p2%{07}%>%t\011\011\011\011\011\011\011\011%;%?%p2%{15}%>%t\011\011\011\011\011\011\011\011%;%?%p2%{23}%>%t\011\011\011\011\011\011\011\011%;%?%p2%{31}%>%t\011\011\011\011\011\011\011\011%;%?%p2%{4}%&%t\011\011\011\011%;%?%p2%{2}%&%t\011\011%;%?%p2%{1}%&%t\011%;,
+ cuu1=^K, home=^^, nel=^M^J, .el=^X, .ind=^J,
+ .rep=%p1%c\022%p2%'?'%+%c, .ri=^K,
+# Also:
+# viewdata-rv works with some applications (e.g. emacs, xemacs) but fails with vim.
+viewdata-rv|prestel/viewdata terminals with reverse capabilitie (as green),
+ xmc#1,
+ rmso=\EG, smso=\EB, use=viewdata,
+
######## OBSOLETE VDT TYPES
#
# These terminals are *long* dead -- these entries are retained for
@@ -23792,4 +23811,7 @@
# 2015-11-21
# + fix some inconsistencies in the pccon* entries -TD
#
+# 2015-11-28
+# add viewdata (Alexandre Montaron).
+#
######## SHANTIH! SHANTIH! SHANTIH!
Index: ncurses/base/lib_getch.c
Prereq: 1.132
--- ncurses-6.0-20151121+/ncurses/base/lib_getch.c 2015-05-09 17:10:41.000000000 +0000
+++ ncurses-6.0-20151128/ncurses/base/lib_getch.c 2015-11-29 01:28:52.000000000 +0000
@@ -42,7 +42,7 @@
#include <curses.priv.h>
-MODULE_ID("$Id: lib_getch.c,v 1.132 2015/05/09 17:10:41 tom Exp $")
+MODULE_ID("$Id: lib_getch.c,v 1.133 2015/11/29 01:28:52 tom Exp $")
#include <fifo_defs.h>
@@ -497,6 +497,8 @@
TR(TRACE_IEVENT, ("timed delay in wgetch()"));
if (sp->_cbreak > 1)
delay = (sp->_cbreak - 1) * 100;
+ else if (win->_notimeout)
+ delay = 0;
else
delay = win->_delay;
Index: package/debian-mingw/changelog
--- ncurses-6.0-20151121+/package/debian-mingw/changelog 2015-11-21 15:55:51.000000000 +0000
+++ ncurses-6.0-20151128/package/debian-mingw/changelog 2015-11-28 16:31:05.000000000 +0000
@@ -1,8 +1,8 @@
-ncurses6 (6.0+20151121) unstable; urgency=low
+ncurses6 (6.0+20151128) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 21 Nov 2015 10:55:51 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 28 Nov 2015 11:31:05 -0500
ncurses6 (5.9-20131005) unstable; urgency=low
Index: package/debian-mingw64/changelog
--- ncurses-6.0-20151121+/package/debian-mingw64/changelog 2015-11-21 15:55:51.000000000 +0000
+++ ncurses-6.0-20151128/package/debian-mingw64/changelog 2015-11-28 16:31:05.000000000 +0000
@@ -1,8 +1,8 @@
-ncurses6 (6.0+20151121) unstable; urgency=low
+ncurses6 (6.0+20151128) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 21 Nov 2015 10:55:51 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 28 Nov 2015 11:31:05 -0500
ncurses6 (5.9-20131005) unstable; urgency=low
Index: package/debian/changelog
--- ncurses-6.0-20151121+/package/debian/changelog 2015-11-21 15:55:51.000000000 +0000
+++ ncurses-6.0-20151128/package/debian/changelog 2015-11-28 16:31:05.000000000 +0000
@@ -1,8 +1,8 @@
-ncurses6 (6.0+20151121) unstable; urgency=low
+ncurses6 (6.0+20151128) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 21 Nov 2015 10:55:51 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 28 Nov 2015 11:31:05 -0500
ncurses6 (5.9-20120608) unstable; urgency=low
Index: package/mingw-ncurses.nsi
Prereq: 1.133
--- ncurses-6.0-20151121+/package/mingw-ncurses.nsi 2015-11-21 15:55:51.000000000 +0000
+++ ncurses-6.0-20151128/package/mingw-ncurses.nsi 2015-11-28 16:31:05.000000000 +0000
@@ -1,4 +1,4 @@
-; $Id: mingw-ncurses.nsi,v 1.133 2015/11/21 15:55:51 tom Exp $
+; $Id: mingw-ncurses.nsi,v 1.134 2015/11/28 16:31:05 tom Exp $
; TODO add examples
; TODO bump ABI to 6
@@ -10,7 +10,7 @@
!define VERSION_MAJOR "6"
!define VERSION_MINOR "0"
!define VERSION_YYYY "2015"
-!define VERSION_MMDD "1121"
+!define VERSION_MMDD "1128"
!define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}
!define MY_ABI "5"
Index: package/mingw-ncurses.spec
--- ncurses-6.0-20151121+/package/mingw-ncurses.spec 2015-11-21 15:55:51.000000000 +0000
+++ ncurses-6.0-20151128/package/mingw-ncurses.spec 2015-11-28 16:31:05.000000000 +0000
@@ -3,7 +3,7 @@
Summary: shared libraries for terminal handling
Name: mingw32-ncurses6
Version: 6.0
-Release: 20151121
+Release: 20151128
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz
Index: package/ncurses.spec
--- ncurses-6.0-20151121+/package/ncurses.spec 2015-11-21 15:55:51.000000000 +0000
+++ ncurses-6.0-20151128/package/ncurses.spec 2015-11-28 16:31:05.000000000 +0000
@@ -1,7 +1,7 @@
Summary: shared libraries for terminal handling
Name: ncurses6
Version: 6.0
-Release: 20151121
+Release: 20151128
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz
Index: progs/dump_entry.c
Prereq: 1.123
--- ncurses-6.0-20151121+/progs/dump_entry.c 2015-09-05 23:31:12.000000000 +0000
+++ ncurses-6.0-20151128/progs/dump_entry.c 2015-11-28 22:54:33.000000000 +0000
@@ -39,7 +39,7 @@
#include "termsort.c" /* this C file is generated */
#include <parametrized.h> /* so is this */
-MODULE_ID("$Id: dump_entry.c,v 1.123 2015/09/05 23:31:12 tom Exp $")
+MODULE_ID("$Id: dump_entry.c,v 1.124 2015/11/28 22:54:33 tom Exp $")
#define DISCARD(string) string = ABSENT_STRING
#define PRINTF (void) printf
@@ -510,6 +510,10 @@
while (*src != '\0') {
switch (*src) {
+ case '^':
+ percent = FALSE;
+ strncpy_DYN(&tmpbuf, src++, (size_t) 1);
+ break;
case '\\':
percent = FALSE;
strncpy_DYN(&tmpbuf, src++, (size_t) 1);
Index: test/ncurses.c
Prereq: 1.423
--- ncurses-6.0-20151121+/test/ncurses.c 2015-10-31 19:53:06.000000000 +0000
+++ ncurses-6.0-20151128/test/ncurses.c 2015-11-29 01:26:41.000000000 +0000
@@ -40,7 +40,7 @@
Author: Eric S. Raymond <esr@snark.thyrsus.com> 1993
Thomas E. Dickey (beginning revision 1.27 in 1996).
-$Id: ncurses.c,v 1.423 2015/10/31 19:53:06 tom Exp $
+$Id: ncurses.c,v 1.425 2015/11/29 01:26:41 tom Exp $
***************************************************************************/
@@ -636,15 +636,22 @@
}
static void
-init_getch(WINDOW *win, GetchFlags flags)
+init_getch(WINDOW *win, GetchFlags flags, int delay)
{
memset(flags, FALSE, NUM_GETCH_FLAGS);
flags[UChar('k')] = (win == stdscr);
flags[UChar('m')] = TRUE;
+ flags[UChar('t')] = (delay != 0);
setup_getch(win, flags);
}
+static bool
+blocking_getch(GetchFlags flags, int delay)
+{
+ return ((delay < 0) && flags['t']);
+}
+
static void
wgetch_help(WINDOW *win, GetchFlags flags)
{
@@ -655,7 +662,8 @@
,"k -- toggle keypad/literal mode"
,"m -- toggle meta (7-bit/8-bit) mode"
,"^q -- quit"
- ,"s -- shell out\n"
+ ,"s -- shell out"
+ ,"t -- toggle timeout"
,"w -- create a new window"
#ifdef SIGTSTP
,"z -- suspend this process"
@@ -810,9 +818,9 @@
int c;
int incount = 0;
GetchFlags flags;
- bool blocking = (delay < 0);
- init_getch(win, flags);
+ init_getch(win, flags, delay);
+ notimeout(win, FALSE);
wtimeout(win, delay);
getyx(win, first_y, first_x);
@@ -823,7 +831,7 @@
for (;;) {
while ((c = wGetchar(win)) == ERR) {
incount++;
- if (blocking) {
+ if (blocking_getch(flags, delay)) {
(void) wprintw(win, "%05d: input error", incount);
break;
} else {
@@ -831,7 +839,7 @@
}
wgetch_wrap(win, first_y);
}
- if (c == ERR && blocking) {
+ if (c == ERR && blocking_getch(flags, delay)) {
wprintw(win, "ERR");
wgetch_wrap(win, first_y);
} else if (isQuit(c)) {
@@ -860,6 +868,10 @@
wgetch_help(win, flags);
} else if (c == 's') {
ShellOut(TRUE);
+ } else if (c == 't') {
+ notimeout(win, flags[UChar('t')]);
+ flags[UChar('t')] = !flags[UChar('t')];
+ wgetch_help(win, flags);
} else if (c == 'w') {
int high = getmaxy(win) - 1 - first_y + 1;
int wide = getmaxx(win) - first_x;
@@ -931,7 +943,7 @@
wtimeout(win, -1);
if (!level)
- init_getch(win, flags);
+ init_getch(win, flags, delay);
}
static int
@@ -958,7 +970,7 @@
delay = -1;
}
raw();
- move(5, 0);
+ move(6, 0);
return delay;
}
@@ -1060,11 +1072,11 @@
wint_t c;
int incount = 0;
GetchFlags flags;
- bool blocking = (delay < 0);
int code;
char *temp;
- init_getch(win, flags);
+ init_getch(win, flags, delay);
+ notimeout(win, FALSE);
wtimeout(win, delay);
getyx(win, first_y, first_x);
@@ -1075,7 +1087,7 @@
for (;;) {
while ((code = wGet_wchar(win, &c)) == ERR) {
incount++;
- if (blocking) {
+ if (blocking_getch(flags, delay)) {
(void) wprintw(win, "%05d: input error", incount);
break;
} else {
@@ -1083,7 +1095,7 @@
}
wgetch_wrap(win, first_y);
}
- if (code == ERR && blocking) {
+ if (code == ERR && blocking_getch(flags, delay)) {
wprintw(win, "ERR");
wgetch_wrap(win, first_y);
} else if (isQuit((int) c)) {
@@ -1125,6 +1137,10 @@
wgetch_help(win, flags);
} else if (c == 's') {
ShellOut(TRUE);
+ } else if (c == 't') {
+ notimeout(win, flags[UChar('t')]);
+ flags[UChar('t')] = !flags[UChar('t')];
+ wgetch_help(win, flags);
} else if (c == 'w') {
int high = getmaxy(win) - 1 - first_y + 1;
int wide = getmaxx(win) - first_x;
@@ -1184,7 +1200,7 @@
wtimeout(win, -1);
if (!level)
- init_getch(win, flags);
+ init_getch(win, flags, delay);
}
static void