Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/lib/libcurses Fix for PR lib/52063



details:   https://anonhg.NetBSD.org/src/rev/f3007c5ee5f0
branches:  trunk
changeset: 445885:f3007c5ee5f0
user:      blymn <blymn%NetBSD.org@localhost>
date:      Fri Nov 16 10:12:00 2018 +0000

description:
Fix for PR lib/52063
Many thanks to  Onno van der Linden (o.vd.linden%quicknet.nl@localhost) for providing
the bulk of the patch that fixes the issue.

diffstat:

 lib/libcurses/curses_private.h |   4 ++--
 lib/libcurses/fileio.h         |   4 ++--
 lib/libcurses/screen.c         |   5 ++---
 lib/libcurses/shlib_version    |   4 ++--
 lib/libcurses/tty.c            |  16 +++++++++-------
 5 files changed, 17 insertions(+), 16 deletions(-)

diffs (127 lines):

diff -r 3347db3707fa -r f3007c5ee5f0 lib/libcurses/curses_private.h
--- a/lib/libcurses/curses_private.h    Fri Nov 16 10:09:29 2018 +0000
+++ b/lib/libcurses/curses_private.h    Fri Nov 16 10:12:00 2018 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: curses_private.h,v 1.67 2018/10/29 00:25:20 uwe Exp $  */
+/*     $NetBSD: curses_private.h,v 1.68 2018/11/16 10:12:00 blymn Exp $        */
 
 /*-
  * Copyright (c) 1998-2000 Brett Lymn
@@ -133,6 +133,7 @@
 #define __ISDERWIN     0x00100000      /* "window" is derived from parent */
 #define __IMMEDOK      0x00200000      /* refreshed when changed */
 #define __SYNCOK       0x00400000      /* sync when changed */
+#define __HALFDELAY    0x00800000      /* In half delay mode */
        unsigned int flags;
        int     delay;                  /* delay for getch() */
        attr_t  wattr;                  /* Character attributes */
@@ -278,7 +279,6 @@
        char padchar;
        int endwin;
        int notty;
-       int half_delay;
        int resized;
        wchar_t *unget_list;
        int unget_len, unget_pos;
diff -r 3347db3707fa -r f3007c5ee5f0 lib/libcurses/fileio.h
--- a/lib/libcurses/fileio.h    Fri Nov 16 10:09:29 2018 +0000
+++ b/lib/libcurses/fileio.h    Fri Nov 16 10:12:00 2018 +0000
@@ -1,8 +1,8 @@
 /*
  * Do not edit!  Automatically generated file:
- *   from: NetBSD: shlib_version,v 1.41 2015/11/22 04:56:00 kamil Exp 
+ *   from: NetBSD: shlib_version,v 1.42 2017/01/02 12:38:16 roy Exp 
  *   by  : NetBSD: genfileioh.awk,v 1.2 2008/05/02 11:13:02 martin Exp 
  */
 
 #define CURSES_LIB_MAJOR 7
-#define CURSES_LIB_MINOR 1
+#define CURSES_LIB_MINOR 2
diff -r 3347db3707fa -r f3007c5ee5f0 lib/libcurses/screen.c
--- a/lib/libcurses/screen.c    Fri Nov 16 10:09:29 2018 +0000
+++ b/lib/libcurses/screen.c    Fri Nov 16 10:12:00 2018 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: screen.c,v 1.34 2018/10/02 17:35:44 roy Exp $  */
+/*     $NetBSD: screen.c,v 1.35 2018/11/16 10:12:00 blymn Exp $        */
 
 /*
  * Copyright (c) 1981, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)screen.c   8.2 (blymn) 11/27/2001";
 #else
-__RCSID("$NetBSD: screen.c,v 1.34 2018/10/02 17:35:44 roy Exp $");
+__RCSID("$NetBSD: screen.c,v 1.35 2018/11/16 10:12:00 blymn Exp $");
 #endif
 #endif                                 /* not lint */
 
@@ -167,7 +167,6 @@
        new_screen->__virtscr = NULL;
        new_screen->curwin = 0;
        new_screen->notty = FALSE;
-       new_screen->half_delay = FALSE;
        new_screen->resized = 0;
        new_screen->unget_len = 32;
 
diff -r 3347db3707fa -r f3007c5ee5f0 lib/libcurses/shlib_version
--- a/lib/libcurses/shlib_version       Fri Nov 16 10:09:29 2018 +0000
+++ b/lib/libcurses/shlib_version       Fri Nov 16 10:12:00 2018 +0000
@@ -1,8 +1,8 @@
-#      $NetBSD: shlib_version,v 1.42 2017/01/02 12:38:16 roy Exp $
+#      $NetBSD: shlib_version,v 1.43 2018/11/16 10:12:00 blymn Exp $
 #      Remember to update distrib/sets/lists/base/shl.* when changing
 #      Remember to run `make fileio.h` when changing
 #      Remember to increment the major numbers of libform, libmenu and
 #      libpanel when the libcurses major number increments.
 #
 major=7
-minor=1
+minor=2
diff -r 3347db3707fa -r f3007c5ee5f0 lib/libcurses/tty.c
--- a/lib/libcurses/tty.c       Fri Nov 16 10:09:29 2018 +0000
+++ b/lib/libcurses/tty.c       Fri Nov 16 10:12:00 2018 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: tty.c,v 1.47 2018/10/18 07:53:13 roy Exp $     */
+/*     $NetBSD: tty.c,v 1.48 2018/11/16 10:12:00 blymn Exp $   */
 
 /*-
  * Copyright (c) 1992, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)tty.c      8.6 (Berkeley) 1/10/95";
 #else
-__RCSID("$NetBSD: tty.c,v 1.47 2018/10/18 07:53:13 roy Exp $");
+__RCSID("$NetBSD: tty.c,v 1.48 2018/11/16 10:12:00 blymn Exp $");
 #endif
 #endif                         /* not lint */
 
@@ -250,11 +250,11 @@
        if (_cursesi_screen->notty == TRUE)
                return OK;
          /* if we were in halfdelay mode then nuke the timeout */
-       if ((_cursesi_screen->half_delay == TRUE) &&
+       if ((stdscr->flags & __HALFDELAY) &&
            (__notimeout() == ERR))
                return ERR;
 
-       _cursesi_screen->half_delay = FALSE;
+       stdscr->flags &= ~__HALFDELAY;
        _cursesi_screen->curt = _cursesi_screen->useraw ?
                &_cursesi_screen->rawt : &_cursesi_screen->baset;
        return tcsetattr(fileno(_cursesi_screen->infd), TCSASOFT | TCSADRAIN,
@@ -275,10 +275,12 @@
        if (cbreak() == ERR)
                return ERR;
 
-       if (__timeout(duration) == ERR)
-               return ERR;
+       if (duration > 255)
+               stdscr->delay = 255;
+       else
+               stdscr->delay = duration;
 
-       _cursesi_screen->half_delay = TRUE;
+       stdscr->flags |= __HALFDELAY;
        return OK;
 }
 



Home | Main Index | Thread Index | Old Index