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