Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/lib/libcurses Send, if necessary, 'ks' or 'ke' sequences fro...
details: https://anonhg.NetBSD.org/src/rev/6c5ea6908e71
branches: trunk
changeset: 486276:6c5ea6908e71
user: jdc <jdc%NetBSD.org@localhost>
date: Wed May 17 16:23:49 2000 +0000
description:
Send, if necessary, 'ks' or 'ke' sequences from keypad() and wgetch().
Fixes PR 10116.
diffstat:
lib/libcurses/getch.c | 12 ++++++++++--
lib/libcurses/keypad.c | 22 ++++++++++++++++++----
lib/libcurses/tstp.c | 7 ++++---
lib/libcurses/tty.c | 7 ++++---
4 files changed, 36 insertions(+), 12 deletions(-)
diffs (139 lines):
diff -r af9bd63cf407 -r 6c5ea6908e71 lib/libcurses/getch.c
--- a/lib/libcurses/getch.c Wed May 17 14:37:59 2000 +0000
+++ b/lib/libcurses/getch.c Wed May 17 16:23:49 2000 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: getch.c,v 1.27 2000/05/01 12:30:30 blymn Exp $ */
+/* $NetBSD: getch.c,v 1.28 2000/05/17 16:23:49 jdc Exp $ */
/*
* Copyright (c) 1981, 1993, 1994
@@ -38,7 +38,7 @@
#if 0
static char sccsid[] = "@(#)getch.c 8.2 (Berkeley) 5/4/94";
#else
-__RCSID("$NetBSD: getch.c,v 1.27 2000/05/01 12:30:30 blymn Exp $");
+__RCSID("$NetBSD: getch.c,v 1.28 2000/05/17 16:23:49 jdc Exp $");
#endif
#endif /* not lint */
@@ -696,6 +696,10 @@
__save_termios();
if (win->flags & __KEYPAD) {
+ if (!(curscr->flags & __KEYPAD)) {
+ tputs(KS, 0, __cputchar);
+ curscr->flags |= __KEYPAD;
+ }
switch (win->delay)
{
case -1:
@@ -713,6 +717,10 @@
break;
}
} else {
+ if (curscr->flags & __KEYPAD) {
+ tputs(KE, 0, __cputchar);
+ curscr->flags &= ~__KEYPAD;
+ }
switch (win->delay)
{
case -1:
diff -r af9bd63cf407 -r 6c5ea6908e71 lib/libcurses/keypad.c
--- a/lib/libcurses/keypad.c Wed May 17 14:37:59 2000 +0000
+++ b/lib/libcurses/keypad.c Wed May 17 16:23:49 2000 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: keypad.c,v 1.4 2000/04/24 14:09:43 blymn Exp $ */
+/* $NetBSD: keypad.c,v 1.5 2000/05/17 16:23:49 jdc Exp $ */
/*-
* Copyright (c) 1998-1999 Brett Lymn (blymn%baea.com.au@localhost, brett_lymn%yahoo.com@localhost)
@@ -28,7 +28,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: keypad.c,v 1.4 2000/04/24 14:09:43 blymn Exp $");
+__RCSID("$NetBSD: keypad.c,v 1.5 2000/05/17 16:23:49 jdc Exp $");
#endif /* not lint */
#include "curses.h"
@@ -42,8 +42,22 @@
void
keypad(WINDOW *win, bool bf)
{
- if (bf)
+#ifdef DEBUG
+ __CTRACE("keypad: win %0.2o, %s\n", win, bf ? "TRUE" : "FALSE");
+#endif
+ if (bf) {
win->flags |= __KEYPAD;
- else
+ /* Be compatible with SysV curses. */
+ if (!(curscr->flags & __KEYPAD)) {
+ tputs (KS, 0, __cputchar);
+ curscr->flags |= __KEYPAD;
+ }
+ } else {
win->flags &= ~__KEYPAD;
+ /* Be compatible with SysV curses. */
+ if (curscr->flags & __KEYPAD) {
+ tputs (KE, 0, __cputchar);
+ curscr->flags &= ~__KEYPAD;
+ }
+ }
}
diff -r af9bd63cf407 -r 6c5ea6908e71 lib/libcurses/tstp.c
--- a/lib/libcurses/tstp.c Wed May 17 14:37:59 2000 +0000
+++ b/lib/libcurses/tstp.c Wed May 17 16:23:49 2000 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: tstp.c,v 1.18 2000/04/27 00:27:23 jdc Exp $ */
+/* $NetBSD: tstp.c,v 1.19 2000/05/17 16:23:49 jdc Exp $ */
/*
* Copyright (c) 1981, 1993, 1994
@@ -38,7 +38,7 @@
#if 0
static char sccsid[] = "@(#)tstp.c 8.3 (Berkeley) 5/4/94";
#else
-__RCSID("$NetBSD: tstp.c,v 1.18 2000/04/27 00:27:23 jdc Exp $");
+__RCSID("$NetBSD: tstp.c,v 1.19 2000/05/17 16:23:49 jdc Exp $");
#endif
#endif /* not lint */
@@ -134,7 +134,8 @@
if (MO != NULL)
(void) tputs(MO, 0, __cputchar);
- (void) tputs(KE, 0, __cputchar);
+ if (curscr->flags & __KEYPAD)
+ (void) tputs(KE, 0, __cputchar);
(void) tputs(VE, 0, __cputchar);
(void) tputs(TE, 0, __cputchar);
(void) fflush(stdout);
diff -r af9bd63cf407 -r 6c5ea6908e71 lib/libcurses/tty.c
--- a/lib/libcurses/tty.c Wed May 17 14:37:59 2000 +0000
+++ b/lib/libcurses/tty.c Wed May 17 16:23:49 2000 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: tty.c,v 1.19 2000/05/01 12:30:30 blymn Exp $ */
+/* $NetBSD: tty.c,v 1.20 2000/05/17 16:23:49 jdc Exp $ */
/*-
* Copyright (c) 1992, 1993, 1994
@@ -38,7 +38,7 @@
#if 0
static char sccsid[] = "@(#)tty.c 8.6 (Berkeley) 1/10/95";
#else
-__RCSID("$NetBSD: tty.c,v 1.19 2000/05/01 12:30:30 blymn Exp $");
+__RCSID("$NetBSD: tty.c,v 1.20 2000/05/17 16:23:49 jdc Exp $");
#endif
#endif /* not lint */
@@ -425,7 +425,8 @@
tputs(TI, 0, __cputchar);
tputs(VS, 0, __cputchar);
- tputs(KS, 0, __cputchar);
+ if (curscr->flags & __KEYPAD)
+ tputs(KS, 0, __cputchar);
}
int
Home |
Main Index |
Thread Index |
Old Index