Module Name:    src
Committed By:   roy
Date:           Tue Jan 31 09:17:53 UTC 2017

Modified Files:
        src/lib/libcurses: curses.c curses_private.h get_wch.c getch.c
            ins_wch.c ins_wstr.c screen.c setterm.c

Log Message:
Move ESCDELAY to curses.c so all globals are close to each other.
Remove _reentrant and use ESCDELAY and TABSIZE as we're not really
reentrant.


To generate a diff of this commit:
cvs rdiff -u -r1.27 -r1.28 src/lib/libcurses/curses.c
cvs rdiff -u -r1.61 -r1.62 src/lib/libcurses/curses_private.h
cvs rdiff -u -r1.13 -r1.14 src/lib/libcurses/get_wch.c
cvs rdiff -u -r1.64 -r1.65 src/lib/libcurses/getch.c
cvs rdiff -u -r1.10 -r1.11 src/lib/libcurses/ins_wch.c \
    src/lib/libcurses/ins_wstr.c
cvs rdiff -u -r1.30 -r1.31 src/lib/libcurses/screen.c
cvs rdiff -u -r1.63 -r1.64 src/lib/libcurses/setterm.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libcurses/curses.c
diff -u src/lib/libcurses/curses.c:1.27 src/lib/libcurses/curses.c:1.28
--- src/lib/libcurses/curses.c:1.27	Mon Jan 30 14:55:58 2017
+++ src/lib/libcurses/curses.c	Tue Jan 31 09:17:53 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: curses.c,v 1.27 2017/01/30 14:55:58 roy Exp $	*/
+/*	$NetBSD: curses.c,v 1.28 2017/01/31 09:17:53 roy Exp $	*/
 
 /*
  * Copyright (c) 1981, 1993, 1994
@@ -35,7 +35,7 @@
 #if 0
 static char sccsid[] = "@(#)curses.c	8.3 (Berkeley) 5/4/94";
 #else
-__RCSID("$NetBSD: curses.c,v 1.27 2017/01/30 14:55:58 roy Exp $");
+__RCSID("$NetBSD: curses.c,v 1.28 2017/01/31 09:17:53 roy Exp $");
 #endif
 #endif				/* not lint */
 
@@ -67,6 +67,7 @@ SCREEN  *_cursesi_screen;               
 volatile bool	 _reentrant;		/* If true, some global vars are ro. */
 int	 COLS;				/* Columns on the screen. */
 int	 LINES;				/* Lines on the screen. */
+int	 ESCDELAY;			/* ms delay between keys for esc seq */
 int	 TABSIZE;			/* Size of a tab. */
 int	 COLORS;			/* Maximum colors on the screen */
 int	 COLOR_PAIRS = 0;		/* Maximum color pairs on the screen */

Index: src/lib/libcurses/curses_private.h
diff -u src/lib/libcurses/curses_private.h:1.61 src/lib/libcurses/curses_private.h:1.62
--- src/lib/libcurses/curses_private.h:1.61	Mon Jan 30 14:55:58 2017
+++ src/lib/libcurses/curses_private.h	Tue Jan 31 09:17:53 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: curses_private.h,v 1.61 2017/01/30 14:55:58 roy Exp $	*/
+/*	$NetBSD: curses_private.h,v 1.62 2017/01/31 09:17:53 roy Exp $	*/
 
 /*-
  * Copyright (c) 1998-2000 Brett Lymn
@@ -314,7 +314,6 @@ extern char	 __UPPERCASE;		/* Terminal i
 extern int	 My_term;		/* Use Def_term regardless. */
 extern const char	*Def_term;	/* Default terminal type. */
 extern SCREEN   *_cursesi_screen;       /* The current screen in use */
-extern volatile bool	 _reentrant;	/* If true, some global vars are ro. */
 
 /* Debugging options/functions. */
 #ifdef DEBUG

Index: src/lib/libcurses/get_wch.c
diff -u src/lib/libcurses/get_wch.c:1.13 src/lib/libcurses/get_wch.c:1.14
--- src/lib/libcurses/get_wch.c:1.13	Mon Jan 30 14:55:58 2017
+++ src/lib/libcurses/get_wch.c	Tue Jan 31 09:17:53 2017
@@ -1,4 +1,4 @@
-/*   $NetBSD: get_wch.c,v 1.13 2017/01/30 14:55:58 roy Exp $ */
+/*   $NetBSD: get_wch.c,v 1.14 2017/01/31 09:17:53 roy Exp $ */
 
 /*
  * Copyright (c) 2005 The NetBSD Foundation Inc.
@@ -36,7 +36,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: get_wch.c,v 1.13 2017/01/30 14:55:58 roy Exp $");
+__RCSID("$NetBSD: get_wch.c,v 1.14 2017/01/31 09:17:53 roy Exp $");
 #endif						  /* not lint */
 
 #include <string.h>
@@ -91,8 +91,6 @@ inkey(wchar_t *wc, int to, int delay)
 				*working = &_cursesi_screen->cbuf_cur,
 				*end = &_cursesi_screen->cbuf_tail;
 	char		*inbuf = &_cursesi_screen->cbuf[ 0 ];
-	int		escdelay = _reentrant ?
-			    _cursesi_screen->ESCDELAY : ESCDELAY;
 
 #ifdef DEBUG
 	__CTRACE(__CTRACE_INPUT, "inkey (%p, %d, %d)\n", wc, to, delay);
@@ -141,11 +139,11 @@ inkey(wchar_t *wc, int to, int delay)
 		} else if (wstate == INKEY_ASSEMBLING) {
 			/* assembling a key sequence */
 			if (delay) {
-				if (__timeout(to ? (escdelay / 100) : delay)
+				if (__timeout(to ? (ESCDELAY / 100) : delay)
 						== ERR)
 					return ERR;
 			} else {
-				if (to && (__timeout(escdelay / 100) == ERR))
+				if (to && (__timeout(ESCDELAY / 100) == ERR))
 					return ERR;
 			}
 
@@ -191,11 +189,11 @@ inkey(wchar_t *wc, int to, int delay)
 		} else if (wstate == INKEY_WCASSEMBLING) {
 			/* assembling a wide-char sequence */
 			if (delay) {
-				if (__timeout(to ? (escdelay / 100) : delay)
+				if (__timeout(to ? (ESCDELAY / 100) : delay)
 						== ERR)
 					return ERR;
 			} else {
-				if (to && (__timeout(escdelay / 100) == ERR))
+				if (to && (__timeout(ESCDELAY / 100) == ERR))
 					return ERR;
 			}
 

Index: src/lib/libcurses/getch.c
diff -u src/lib/libcurses/getch.c:1.64 src/lib/libcurses/getch.c:1.65
--- src/lib/libcurses/getch.c:1.64	Mon Jan 30 16:50:44 2017
+++ src/lib/libcurses/getch.c	Tue Jan 31 09:17:53 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: getch.c,v 1.64 2017/01/30 16:50:44 roy Exp $	*/
+/*	$NetBSD: getch.c,v 1.65 2017/01/31 09:17:53 roy Exp $	*/
 
 /*
  * Copyright (c) 1981, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)getch.c	8.2 (Berkeley) 5/4/94";
 #else
-__RCSID("$NetBSD: getch.c,v 1.64 2017/01/30 16:50:44 roy Exp $");
+__RCSID("$NetBSD: getch.c,v 1.65 2017/01/31 09:17:53 roy Exp $");
 #endif
 #endif					/* not lint */
 
@@ -203,8 +203,6 @@ static const struct tcdata tc[] = {
 /* Number of TC entries .... */
 static const int num_tcs = (sizeof(tc) / sizeof(struct tcdata));
 
-int		ESCDELAY;	/* Delay in ms between keys for esc seq's */
-
 /* Key buffer */
 #define INBUF_SZ 16		/* size of key buffer - must be larger than
 				 * longest multi-key sequence */
@@ -550,8 +548,6 @@ inkey(int to, int delay)
 	int              c, mapping;
 	keymap_t	*current = _cursesi_screen->base_keymap;
 	FILE            *infd = _cursesi_screen->infd;
-	int		escdelay = _reentrant ?
-			    _cursesi_screen->ESCDELAY : ESCDELAY;
 
 	k = 0;		/* XXX gcc -Wuninitialized */
 
@@ -597,11 +593,11 @@ reread:
 		} else if (state == INKEY_ASSEMBLING) {
 			/* assembling a key sequence */
 			if (delay) {
-				if (__timeout(to ? (escdelay / 100) : delay)
+				if (__timeout(to ? (ESCDELAY / 100) : delay)
 				    == ERR)
 					return ERR;
 			} else {
-				if (to && (__timeout(escdelay / 100) == ERR))
+				if (to && (__timeout(ESCDELAY / 100) == ERR))
 					return ERR;
 			}
 
@@ -999,7 +995,6 @@ set_escdelay(int escdelay)
 	if (_cursesi_screen == NULL)
 		return ERR;
 	_cursesi_screen->ESCDELAY = escdelay;
-	_reentrant = true;
 	ESCDELAY = escdelay;
 	return OK;
 }

Index: src/lib/libcurses/ins_wch.c
diff -u src/lib/libcurses/ins_wch.c:1.10 src/lib/libcurses/ins_wch.c:1.11
--- src/lib/libcurses/ins_wch.c:1.10	Mon Jan 30 14:55:58 2017
+++ src/lib/libcurses/ins_wch.c	Tue Jan 31 09:17:53 2017
@@ -1,4 +1,4 @@
-/*   $NetBSD: ins_wch.c,v 1.10 2017/01/30 14:55:58 roy Exp $ */
+/*   $NetBSD: ins_wch.c,v 1.11 2017/01/31 09:17:53 roy Exp $ */
 
 /*
  * Copyright (c) 2005 The NetBSD Foundation Inc.
@@ -36,7 +36,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: ins_wch.c,v 1.10 2017/01/30 14:55:58 roy Exp $");
+__RCSID("$NetBSD: ins_wch.c,v 1.11 2017/01/31 09:17:53 roy Exp $");
 #endif						  /* not lint */
 
 #include <string.h>
@@ -102,7 +102,7 @@ wins_wch(WINDOW *win, const cchar_t *wch
 #else
 	__LDATA	*start, *temp1, *temp2;
 	__LINE *lnp;
-	int cw, pcw, x, y, sx, ex, newx, i, tabsize;
+	int cw, pcw, x, y, sx, ex, newx, i;
 	nschar_t *np, *tnp;
 	wchar_t ws[] = L"		";
 
@@ -146,9 +146,8 @@ wins_wch(WINDOW *win, const cchar_t *wch
 			}
 			return OK;
 		case L'\t':
-			tabsize = _reentrant ? win->screen->TABSIZE : TABSIZE;
 			if (wins_nwstr(win, ws, min(win->maxx - x,
-			    tabsize - (x % tabsize))) == ERR)
+			    TABSIZE - (x % TABSIZE))) == ERR)
 				return ERR;
 			return OK;
 	}
Index: src/lib/libcurses/ins_wstr.c
diff -u src/lib/libcurses/ins_wstr.c:1.10 src/lib/libcurses/ins_wstr.c:1.11
--- src/lib/libcurses/ins_wstr.c:1.10	Mon Jan 30 14:55:58 2017
+++ src/lib/libcurses/ins_wstr.c	Tue Jan 31 09:17:53 2017
@@ -1,4 +1,4 @@
-/*   $NetBSD: ins_wstr.c,v 1.10 2017/01/30 14:55:58 roy Exp $ */
+/*   $NetBSD: ins_wstr.c,v 1.11 2017/01/31 09:17:53 roy Exp $ */
 
 /*
  * Copyright (c) 2005 The NetBSD Foundation Inc.
@@ -36,7 +36,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: ins_wstr.c,v 1.10 2017/01/30 14:55:58 roy Exp $");
+__RCSID("$NetBSD: ins_wstr.c,v 1.11 2017/01/31 09:17:53 roy Exp $");
 #endif						  /* not lint */
 
 #include <string.h>
@@ -136,7 +136,7 @@ wins_nwstr(WINDOW *win, const wchar_t *w
 	__LDATA	 *start, *temp1, *temp2;
 	__LINE	  *lnp;
 	const wchar_t *scp;
-	int width, len, sx, x, y, cw, pcw, newx, tabsize;
+	int width, len, sx, x, y, cw, pcw, newx;
 	nschar_t *np;
 	wchar_t ws[] = L"		";
 
@@ -266,10 +266,8 @@ wins_nwstr(WINDOW *win, const wchar_t *w
 				}
 				continue;
 			case L'\t':
-				tabsize = _reentrant ?
-				    win->screen->TABSIZE : TABSIZE;
 				if (wins_nwstr(win, ws,
-				    min(win->maxx - x, tabsize - (x % tabsize)))
+				    min(win->maxx - x, TABSIZE - (x % TABSIZE)))
 				    == ERR)
 					return ERR;
 				continue;

Index: src/lib/libcurses/screen.c
diff -u src/lib/libcurses/screen.c:1.30 src/lib/libcurses/screen.c:1.31
--- src/lib/libcurses/screen.c:1.30	Tue Jan 24 17:27:30 2017
+++ src/lib/libcurses/screen.c	Tue Jan 31 09:17:53 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: screen.c,v 1.30 2017/01/24 17:27:30 roy Exp $	*/
+/*	$NetBSD: screen.c,v 1.31 2017/01/31 09:17:53 roy 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.30 2017/01/24 17:27:30 roy Exp $");
+__RCSID("$NetBSD: screen.c,v 1.31 2017/01/31 09:17:53 roy Exp $");
 #endif
 #endif					/* not lint */
 
@@ -66,6 +66,8 @@ set_term(SCREEN *new)
 		old_screen->noqch = __noqch;
 		old_screen->COLS = COLS;
 		old_screen->LINES = LINES + __rippedlines(old_screen);
+		old_screen->ESCDELAY = ESCDELAY;
+		old_screen->TABSIZE = TABSIZE;
 		old_screen->COLORS = COLORS;
 		old_screen->COLOR_PAIRS = COLOR_PAIRS;
 		old_screen->GT = __GT;
@@ -81,6 +83,8 @@ set_term(SCREEN *new)
 	__noqch = new->noqch;
 	COLS = new->COLS;
 	LINES = new->LINES - __rippedlines(new);
+	ESCDELAY = new->ESCDELAY;
+	TABSIZE = new->TABSIZE;
 	COLORS = new->COLORS;
 	COLOR_PAIRS = new->COLOR_PAIRS;
 	__GT = new->GT;

Index: src/lib/libcurses/setterm.c
diff -u src/lib/libcurses/setterm.c:1.63 src/lib/libcurses/setterm.c:1.64
--- src/lib/libcurses/setterm.c:1.63	Mon Jan 30 16:50:44 2017
+++ src/lib/libcurses/setterm.c	Tue Jan 31 09:17:53 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: setterm.c,v 1.63 2017/01/30 16:50:44 roy Exp $	*/
+/*	$NetBSD: setterm.c,v 1.64 2017/01/31 09:17:53 roy Exp $	*/
 
 /*
  * Copyright (c) 1981, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)setterm.c	8.8 (Berkeley) 10/25/94";
 #else
-__RCSID("$NetBSD: setterm.c,v 1.63 2017/01/30 16:50:44 roy Exp $");
+__RCSID("$NetBSD: setterm.c,v 1.64 2017/01/31 09:17:53 roy Exp $");
 #endif
 #endif /* not lint */
 
@@ -406,7 +406,6 @@ set_tabsize(int tabsize)
 	if (_cursesi_screen == NULL)
 		return ERR;
 	_cursesi_screen->TABSIZE = tabsize;
-	_reentrant = true;
 	TABSIZE = tabsize;
 	return OK;
 }

Reply via email to