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;
}