Module Name:    src
Committed By:   blymn
Date:           Sun Jun  9 07:40:14 UTC 2019

Modified Files:
        src/lib/libcurses: add_wch.c add_wchstr.c addbytes.c addch.c
            addchnstr.c addnstr.c addwstr.c copywin.c curses_private.h delch.c
            erase.c get_wch.c get_wstr.c getch.c getstr.c in_wch.c in_wchstr.c
            inch.c inchstr.c ins_wch.c ins_wstr.c insch.c insstr.c instr.c
            inwstr.c line.c move.c newwin.c printw.c refresh.c scroll.c

Log Message:
Rework previous fix for getch cursor position when cursor is moved
without refresh.  If the window is not dirty but the window cursor
position does not match curscr then move the cursor.  This fixes
the issues seen in PR lib/54263.


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/lib/libcurses/add_wch.c
cvs rdiff -u -r1.7 -r1.8 src/lib/libcurses/add_wchstr.c \
    src/lib/libcurses/addchnstr.c src/lib/libcurses/get_wstr.c \
    src/lib/libcurses/in_wchstr.c src/lib/libcurses/inwstr.c
cvs rdiff -u -r1.51 -r1.52 src/lib/libcurses/addbytes.c
cvs rdiff -u -r1.20 -r1.21 src/lib/libcurses/addch.c src/lib/libcurses/move.c
cvs rdiff -u -r1.16 -r1.17 src/lib/libcurses/addnstr.c
cvs rdiff -u -r1.5 -r1.6 src/lib/libcurses/addwstr.c
cvs rdiff -u -r1.18 -r1.19 src/lib/libcurses/copywin.c
cvs rdiff -u -r1.70 -r1.71 src/lib/libcurses/curses_private.h
cvs rdiff -u -r1.25 -r1.26 src/lib/libcurses/delch.c \
    src/lib/libcurses/scroll.c
cvs rdiff -u -r1.27 -r1.28 src/lib/libcurses/erase.c
cvs rdiff -u -r1.22 -r1.23 src/lib/libcurses/get_wch.c
cvs rdiff -u -r1.72 -r1.73 src/lib/libcurses/getch.c
cvs rdiff -u -r1.26 -r1.27 src/lib/libcurses/getstr.c
cvs rdiff -u -r1.6 -r1.7 src/lib/libcurses/in_wch.c \
    src/lib/libcurses/insstr.c src/lib/libcurses/instr.c
cvs rdiff -u -r1.13 -r1.14 src/lib/libcurses/inch.c \
    src/lib/libcurses/ins_wch.c src/lib/libcurses/ins_wstr.c
cvs rdiff -u -r1.9 -r1.10 src/lib/libcurses/inchstr.c
cvs rdiff -u -r1.24 -r1.25 src/lib/libcurses/insch.c
cvs rdiff -u -r1.10 -r1.11 src/lib/libcurses/line.c
cvs rdiff -u -r1.56 -r1.57 src/lib/libcurses/newwin.c
cvs rdiff -u -r1.28 -r1.29 src/lib/libcurses/printw.c
cvs rdiff -u -r1.110 -r1.111 src/lib/libcurses/refresh.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/add_wch.c
diff -u src/lib/libcurses/add_wch.c:1.8 src/lib/libcurses/add_wch.c:1.9
--- src/lib/libcurses/add_wch.c:1.8	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/add_wch.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*   $NetBSD: add_wch.c,v 1.8 2019/05/20 22:17:41 blymn Exp $ */
+/*   $NetBSD: add_wch.c,v 1.9 2019/06/09 07:40:14 blymn Exp $ */
 
 /*
  * Copyright (c) 2005 The NetBSD Foundation Inc.
@@ -36,7 +36,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: add_wch.c,v 1.8 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: add_wch.c,v 1.9 2019/06/09 07:40:14 blymn Exp $");
 #endif /* not lint */
 
 #include <stdlib.h>
@@ -76,7 +76,7 @@ mvadd_wch(int y, int x, const cchar_t *w
 int
 mvwadd_wch(WINDOW *win, int y, int x, const cchar_t *wch)
 {
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return wadd_wch(win, wch);

Index: src/lib/libcurses/add_wchstr.c
diff -u src/lib/libcurses/add_wchstr.c:1.7 src/lib/libcurses/add_wchstr.c:1.8
--- src/lib/libcurses/add_wchstr.c:1.7	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/add_wchstr.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*   $NetBSD: add_wchstr.c,v 1.7 2019/05/20 22:17:41 blymn Exp $ */
+/*   $NetBSD: add_wchstr.c,v 1.8 2019/06/09 07:40:14 blymn Exp $ */
 
 /*
  * Copyright (c) 2005 The NetBSD Foundation Inc.
@@ -36,7 +36,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: add_wchstr.c,v 1.7 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: add_wchstr.c,v 1.8 2019/06/09 07:40:14 blymn Exp $");
 #endif				/* not lint */
 
 #include <stdlib.h>
@@ -120,7 +120,7 @@ mvadd_wchnstr(int y, int x, const cchar_
 int
 mvwadd_wchnstr(WINDOW *win, int y, int x, const cchar_t *wchstr, int n)
 {
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return wadd_wchnstr(win, wchstr, n);
Index: src/lib/libcurses/addchnstr.c
diff -u src/lib/libcurses/addchnstr.c:1.7 src/lib/libcurses/addchnstr.c:1.8
--- src/lib/libcurses/addchnstr.c:1.7	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/addchnstr.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: addchnstr.c,v 1.7 2019/05/20 22:17:41 blymn Exp $	*/
+/*	$NetBSD: addchnstr.c,v 1.8 2019/06/09 07:40:14 blymn Exp $	*/
 
 /*
  * Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: addchnstr.c,v 1.7 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: addchnstr.c,v 1.8 2019/06/09 07:40:14 blymn Exp $");
 #endif				/* not lint */
 
 #include <stdlib.h>
@@ -111,7 +111,7 @@ mvaddchnstr(int y, int x, const chtype *
 int
 mvwaddchnstr(WINDOW *win, int y, int x, const chtype *chstr, int n)
 {
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return waddchnstr(win, chstr, n);
@@ -180,6 +180,6 @@ waddchnstr(WINDOW *win, const chtype *ch
 	*cp = '\0';
 	ret = _cursesi_waddbytes(win, start, i, attr, 0);
 	free(ocp);
-	_cursesi_wmove(win, oy, ox, 1);
+	wmove(win, oy, ox);
 	return ret;
 }
Index: src/lib/libcurses/get_wstr.c
diff -u src/lib/libcurses/get_wstr.c:1.7 src/lib/libcurses/get_wstr.c:1.8
--- src/lib/libcurses/get_wstr.c:1.7	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/get_wstr.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*   $NetBSD: get_wstr.c,v 1.7 2019/05/20 22:17:41 blymn Exp $ */
+/*   $NetBSD: get_wstr.c,v 1.8 2019/06/09 07:40:14 blymn Exp $ */
 
 /*
  * Copyright (c) 2005 The NetBSD Foundation Inc.
@@ -36,7 +36,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: get_wstr.c,v 1.7 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: get_wstr.c,v 1.8 2019/06/09 07:40:14 blymn Exp $");
 #endif						  /* not lint */
 
 #include "curses.h"
@@ -98,7 +98,7 @@ mvget_wstr(int y, int x, wchar_t *wstr)
 int
 mvwgetn_wstr(WINDOW *win, int y, int x, wchar_t *wstr, int n)
 {
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return wgetn_wstr(win, wstr, n);
@@ -113,7 +113,7 @@ __warn_references(mvget_wstr,
 int
 mvwget_wstr(WINDOW *win, int y, int x, wchar_t *wstr)
 {
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return wget_wstr(win, wstr);
@@ -188,7 +188,7 @@ __wgetn_wstr(WINDOW *win, wchar_t *wstr,
 				if ((wchar_t)wc == ec) {
 					mvwadd_wch(win, win->cury,
 						win->curx, &cc);
-					_cursesi_wmove(win, win->cury, win->curx - 1, 1);
+					wmove(win, win->cury, win->curx - 1);
 				}
 				if (wc == KEY_BACKSPACE || wc == KEY_LEFT) {
 					/* getch() displays the key sequence */
@@ -196,7 +196,7 @@ __wgetn_wstr(WINDOW *win, wchar_t *wstr,
 						win->curx - 1, &cc);
 					mvwadd_wch(win, win->cury,
 						win->curx - 2, &cc);
-					_cursesi_wmove(win, win->cury, win->curx - 1, 1);
+					wmove(win, win->cury, win->curx - 1);
 				}
 				wstr--;
 				if (n != -1) {
@@ -208,7 +208,7 @@ __wgetn_wstr(WINDOW *win, wchar_t *wstr,
 					/* getch() displays the other keys */
 					mvwadd_wch(win, win->cury,
 						win->curx - 1, &cc);
-				_cursesi_wmove(win, win->cury, oldx, 1);
+				wmove(win, win->cury, oldx);
 			}
 		} else if (wc == kc) {
 			*wstr = L'\0';
@@ -219,29 +219,29 @@ __wgetn_wstr(WINDOW *win, wchar_t *wstr,
 				while (wstr != ostr) {
 					mvwadd_wch(win, win->cury,
 						win->curx - 1, &cc);
-					_cursesi_wmove(win, win->cury, win->curx - 1, 1);
+					wmove(win, win->cury, win->curx - 1);
 					wstr--;
 					if (n != -1)
 						/* We're counting chars */
 						remain++;
 				}
 				mvwadd_wch(win, win->cury, win->curx - 1, &cc);
-				_cursesi_wmove(win, win->cury, win->curx - 1, 1);
+				wmove(win, win->cury, win->curx - 1);
 			} else
 				/* getch() displays the kill character */
 				mvwadd_wch( win, win->cury, oldx, &cc );
-			_cursesi_wmove(win, win->cury, oldx, 0);
+			wmove(win, win->cury, oldx);
 		} else if (wc >= KEY_MIN && wc <= KEY_MAX) {
 			/* get_wch() displays these characters */
 			mvwadd_wch( win, win->cury, win->curx - 1, &cc );
-			_cursesi_wmove(win, win->cury, win->curx - 1, 1);
+			wmove(win, win->cury, win->curx - 1);
 		} else {
 			if (remain) {
 				wstr++;
 				remain--;
 			} else {
 				mvwadd_wch(win, win->cury, win->curx - 1, &cc);
-				_cursesi_wmove(win, win->cury, win->curx - 1, 1);
+				wmove(win, win->cury, win->curx - 1);
 			}
 		}
 	}
Index: src/lib/libcurses/in_wchstr.c
diff -u src/lib/libcurses/in_wchstr.c:1.7 src/lib/libcurses/in_wchstr.c:1.8
--- src/lib/libcurses/in_wchstr.c:1.7	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/in_wchstr.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*   $NetBSD: in_wchstr.c,v 1.7 2019/05/20 22:17:41 blymn Exp $ */
+/*   $NetBSD: in_wchstr.c,v 1.8 2019/06/09 07:40:14 blymn Exp $ */
 
 /*
  * Copyright (c) 2005 The NetBSD Foundation Inc.
@@ -36,7 +36,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: in_wchstr.c,v 1.7 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: in_wchstr.c,v 1.8 2019/06/09 07:40:14 blymn Exp $");
 #endif						  /* not lint */
 
 #include "curses.h"
@@ -87,7 +87,7 @@ __warn_references(mvwin_wchstr,
 int
 mvwin_wchstr(WINDOW *win, int y, int x, cchar_t *wchstr)
 {
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return win_wchstr(win, wchstr);
@@ -96,7 +96,7 @@ mvwin_wchstr(WINDOW *win, int y, int x, 
 int
 mvwin_wchnstr(WINDOW *win, int y, int x, cchar_t *wchstr, int n)
 {
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return win_wchnstr(win, wchstr, n);
Index: src/lib/libcurses/inwstr.c
diff -u src/lib/libcurses/inwstr.c:1.7 src/lib/libcurses/inwstr.c:1.8
--- src/lib/libcurses/inwstr.c:1.7	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/inwstr.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*   $NetBSD: inwstr.c,v 1.7 2019/05/20 22:17:41 blymn Exp $ */
+/*   $NetBSD: inwstr.c,v 1.8 2019/06/09 07:40:14 blymn Exp $ */
 
 /*
  * Copyright (c) 2005 The NetBSD Foundation Inc.
@@ -36,7 +36,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: inwstr.c,v 1.7 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: inwstr.c,v 1.8 2019/06/09 07:40:14 blymn Exp $");
 #endif						  /* not lint */
 
 #include "curses.h"
@@ -87,7 +87,7 @@ __warn_references(mvwinwstr,
 int
 mvwinwstr(WINDOW *win, int y, int x, wchar_t *wstr)
 {
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return winwstr(win, wstr);
@@ -96,7 +96,7 @@ mvwinwstr(WINDOW *win, int y, int x, wch
 int
 mvwinnwstr(WINDOW *win, int y, int x, wchar_t *wstr, int n)
 {
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return winnwstr(win, wstr, n);

Index: src/lib/libcurses/addbytes.c
diff -u src/lib/libcurses/addbytes.c:1.51 src/lib/libcurses/addbytes.c:1.52
--- src/lib/libcurses/addbytes.c:1.51	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/addbytes.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: addbytes.c,v 1.51 2019/05/20 22:17:41 blymn Exp $	*/
+/*	$NetBSD: addbytes.c,v 1.52 2019/06/09 07:40:14 blymn Exp $	*/
 
 /*
  * Copyright (c) 1987, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)addbytes.c	8.4 (Berkeley) 5/4/94";
 #else
-__RCSID("$NetBSD: addbytes.c,v 1.51 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: addbytes.c,v 1.52 2019/06/09 07:40:14 blymn Exp $");
 #endif
 #endif				/* not lint */
 
@@ -47,9 +47,9 @@ __RCSID("$NetBSD: addbytes.c,v 1.51 2019
 #endif
 
 #define	SYNCH_IN	{y = win->cury; x = win->curx;}
-#define	SYNCH_OUT	{win->cury = y; win->curx = x; win->ocury = y; win->ocurx = x;}
+#define	SYNCH_OUT	{win->cury = y; win->curx = x;}
 #define	PSYNCH_IN	{*y = win->cury; *x = win->curx;}
-#define	PSYNCH_OUT	{win->cury = *y; win->curx = *x; win->ocury = *y; win->ocurx = *x;}
+#define	PSYNCH_OUT	{win->cury = *y; win->curx = *x;}
 
 #ifndef _CURSES_USE_MACROS
 
@@ -94,7 +94,7 @@ int
 mvwaddbytes(WINDOW *win, int y, int x, const char *bytes, int count)
 {
 
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return _cursesi_waddbytes(win, bytes, count, 0, 1);
@@ -241,14 +241,12 @@ _cursesi_addbyte(WINDOW *win, __LINE **l
 		case '\r':
 			*x = 0;
 			win->curx = *x;
-			win->ocurx = *x;
 			return OK;
 
 		case '\b':
 			if (--(*x) < 0)
 				*x = 0;
 			win->curx = *x;
-			win->ocurx = *x;
 			return OK;
 		}
 	}
@@ -364,12 +362,10 @@ _cursesi_addwchar(WINDOW *win, __LINE **
 			if (--*x < 0)
 				*x = 0;
 			win->curx = *x;
-			win->ocurx = *x;
 			return OK;
 		case L'\r':
 			*x = 0;
 			win->curx = *x;
-			win->ocurx = *x;
 			return OK;
 		case L'\n':
 			wclrtoeol(win);
@@ -512,7 +508,6 @@ _cursesi_addwchar(WINDOW *win, __LINE **
 		(*lnp) = win->alines[*y];
 	}
 	win->cury = *y;
-	win->ocury = *y;
 
 	/* add spacing character */
 #ifdef DEBUG
@@ -602,11 +597,10 @@ _cursesi_addwchar(WINDOW *win, __LINE **
 		}
 		lp = &win->alines[*y]->line[0];
 		(*lnp) = win->alines[*y];
-		win->curx = win->ocurx = *x;
-		win->cury = win->ocury = *y;
+		win->curx = *x;
+		win->cury = *y;
 	} else {
 		win->curx = *x;
-		win->ocurx = *x;
 
 		/* clear the remining of the current characer */
 		if (*x && *x < win->maxx) {

Index: src/lib/libcurses/addch.c
diff -u src/lib/libcurses/addch.c:1.20 src/lib/libcurses/addch.c:1.21
--- src/lib/libcurses/addch.c:1.20	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/addch.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: addch.c,v 1.20 2019/05/20 22:17:41 blymn Exp $	*/
+/*	$NetBSD: addch.c,v 1.21 2019/06/09 07:40:14 blymn Exp $	*/
 
 /*
  * Copyright (c) 1981, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)addch.c	8.2 (Berkeley) 5/4/94";
 #else
-__RCSID("$NetBSD: addch.c,v 1.20 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: addch.c,v 1.21 2019/06/09 07:40:14 blymn Exp $");
 #endif
 #endif				/* not lint */
 
@@ -74,7 +74,7 @@ int
 mvwaddch(WINDOW *win, int y, int x, chtype ch)
 {
 
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return waddch(win, ch);
Index: src/lib/libcurses/move.c
diff -u src/lib/libcurses/move.c:1.20 src/lib/libcurses/move.c:1.21
--- src/lib/libcurses/move.c:1.20	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/move.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: move.c,v 1.20 2019/05/20 22:17:41 blymn Exp $	*/
+/*	$NetBSD: move.c,v 1.21 2019/06/09 07:40:14 blymn Exp $	*/
 
 /*
  * Copyright (c) 1981, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)move.c	8.2 (Berkeley) 5/4/94";
 #else
-__RCSID("$NetBSD: move.c,v 1.20 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: move.c,v 1.21 2019/06/09 07:40:14 blymn Exp $");
 #endif
 #endif				/* not lint */
 
@@ -50,7 +50,7 @@ int
 move(int y, int x)
 {
 
-	return _cursesi_wmove(stdscr, y, x, 1);
+	return wmove(stdscr, y, x);
 }
 
 #endif
@@ -62,21 +62,8 @@ move(int y, int x)
 int
 wmove(WINDOW *win, int y, int x)
 {
-	return _cursesi_wmove(win, y, x, 1);
-}
-
-
-/*
- * _cursesi_wmove:
- *	Moves the cursor to the given point, if keep_old == 0 then
- * update the old cursor position.
- */
-int
-_cursesi_wmove(WINDOW *win, int y, int x, int keep_old)
-{
-
 #ifdef DEBUG
-	__CTRACE(__CTRACE_MISC, "_cursesi_wmove: (%d, %d), keep_old: %d\n", y, x, keep_old);
+	__CTRACE(__CTRACE_MISC, "wmove: (%d, %d)\n", y, x);
 #endif
 	if (x < 0 || y < 0)
 		return ERR;
@@ -85,10 +72,6 @@ _cursesi_wmove(WINDOW *win, int y, int x
 
 	win->curx = x;
 	win->cury = y;
-	if (keep_old == 0) {
-		win->ocurx = x;
-		win->ocury = y;
-	}
 
 	return OK;
 }
@@ -98,8 +81,8 @@ wcursyncup(WINDOW *win)
 {
 
 	while (win->orig) {
-		_cursesi_wmove(win->orig, win->cury + win->begy - win->orig->begy,
-		      win->curx + win->begx - win->orig->begx, 0);
+		wmove(win->orig, win->cury + win->begy - win->orig->begy,
+		      win->curx + win->begx - win->orig->begx);
 		win = win->orig;
 	}
 }

Index: src/lib/libcurses/addnstr.c
diff -u src/lib/libcurses/addnstr.c:1.16 src/lib/libcurses/addnstr.c:1.17
--- src/lib/libcurses/addnstr.c:1.16	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/addnstr.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: addnstr.c,v 1.16 2019/05/20 22:17:41 blymn Exp $	*/
+/*	$NetBSD: addnstr.c,v 1.17 2019/06/09 07:40:14 blymn Exp $	*/
 
 /*
  * Copyright (c) 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)addnstr.c	8.2 (Berkeley) 5/4/94";
 #else
-__RCSID("$NetBSD: addnstr.c,v 1.16 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: addnstr.c,v 1.17 2019/06/09 07:40:14 blymn Exp $");
 #endif
 #endif				/* not lint */
 
@@ -115,7 +115,7 @@ mvaddnstr(int y, int x, const char *str,
 int
 mvwaddnstr(WINDOW *win, int y, int x, const char *str, int count)
 {
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return waddnstr(win, str, count);

Index: src/lib/libcurses/addwstr.c
diff -u src/lib/libcurses/addwstr.c:1.5 src/lib/libcurses/addwstr.c:1.6
--- src/lib/libcurses/addwstr.c:1.5	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/addwstr.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*   $NetBSD: addwstr.c,v 1.5 2019/05/20 22:17:41 blymn Exp $ */
+/*   $NetBSD: addwstr.c,v 1.6 2019/06/09 07:40:14 blymn Exp $ */
 
 /*
  * Copyright (c) 2005 The NetBSD Foundation Inc.
@@ -36,7 +36,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: addwstr.c,v 1.5 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: addwstr.c,v 1.6 2019/06/09 07:40:14 blymn Exp $");
 #endif						  /* not lint */
 
 #include <string.h>
@@ -114,7 +114,7 @@ mvaddnwstr(int y, int x, const wchar_t *
 int
 mvwaddnwstr(WINDOW *win, int y, int x, const wchar_t *str, int count)
 {
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return waddnwstr(win, str, count);

Index: src/lib/libcurses/copywin.c
diff -u src/lib/libcurses/copywin.c:1.18 src/lib/libcurses/copywin.c:1.19
--- src/lib/libcurses/copywin.c:1.18	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/copywin.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: copywin.c,v 1.18 2019/05/20 22:17:41 blymn Exp $	*/
+/*	$NetBSD: copywin.c,v 1.19 2019/06/09 07:40:14 blymn Exp $	*/
 
 /*-
  * Copyright (c) 1998-1999 Brett Lymn
@@ -31,7 +31,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: copywin.c,v 1.18 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: copywin.c,v 1.19 2019/06/09 07:40:14 blymn Exp $");
 #endif				/* not lint */
 
 #include <ctype.h>
@@ -119,7 +119,7 @@ int copywin(const WINDOW *srcwin, WINDOW
 			 * background character
 			 */
 			if ((dooverlay && !isspace(sp->ch)) || !dooverlay) {
-				_cursesi_wmove(dstwin, dminrow, dcol, 0);
+				wmove(dstwin, dminrow, dcol);
 #ifdef DEBUG
 	__CTRACE(__CTRACE_WINDOW, "copywin: dcol = %d\n", dcol);
 #endif

Index: src/lib/libcurses/curses_private.h
diff -u src/lib/libcurses/curses_private.h:1.70 src/lib/libcurses/curses_private.h:1.71
--- src/lib/libcurses/curses_private.h:1.70	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/curses_private.h	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: curses_private.h,v 1.70 2019/05/20 22:17:41 blymn Exp $	*/
+/*	$NetBSD: curses_private.h,v 1.71 2019/06/09 07:40:14 blymn Exp $	*/
 
 /*-
  * Copyright (c) 1998-2000 Brett Lymn
@@ -111,7 +111,6 @@ struct __window {		/* Window structure. 
 	struct __window	*nextp, *orig;	/* Subwindows list and parent. */
 	int begy, begx;			/* Window home. */
 	int cury, curx;			/* Current x, y coordinates. */
-	int ocury, ocurx;		/* Previous x, y coordinates. */
 	int maxy, maxx;			/* Maximum values for curx, cury. */
 	int reqy, reqx;			/* Size requested when created */
 	int ch_off;			/* x offset for firstch/lastch. */
@@ -352,7 +351,6 @@ void     _cursesi_reset_wacs(SCREEN *);
 #endif /* HAVE_WCHAR */
 void     _cursesi_resetterm(SCREEN *);
 int      _cursesi_setterm(char *, SCREEN *);
-int	_cursesi_wmove(WINDOW *, int, int, int);
 int	 __delay(void);
 unsigned int	 __hash_more(const void *, size_t, unsigned int);
 #define	__hash(s, len)	__hash_more((s), (len), 0u)

Index: src/lib/libcurses/delch.c
diff -u src/lib/libcurses/delch.c:1.25 src/lib/libcurses/delch.c:1.26
--- src/lib/libcurses/delch.c:1.25	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/delch.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: delch.c,v 1.25 2019/05/20 22:17:41 blymn Exp $	*/
+/*	$NetBSD: delch.c,v 1.26 2019/06/09 07:40:14 blymn Exp $	*/
 
 /*
  * Copyright (c) 1981, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)delch.c	8.2 (Berkeley) 5/4/94";
 #else
-__RCSID("$NetBSD: delch.c,v 1.25 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: delch.c,v 1.26 2019/06/09 07:40:14 blymn Exp $");
 #endif
 #endif				/* not lint */
 
@@ -72,7 +72,7 @@ mvdelch(int y, int x)
 int
 mvwdelch(WINDOW *win, int y, int x)
 {
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return wdelch(win);
Index: src/lib/libcurses/scroll.c
diff -u src/lib/libcurses/scroll.c:1.25 src/lib/libcurses/scroll.c:1.26
--- src/lib/libcurses/scroll.c:1.25	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/scroll.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: scroll.c,v 1.25 2019/05/20 22:17:41 blymn Exp $	*/
+/*	$NetBSD: scroll.c,v 1.26 2019/06/09 07:40:14 blymn Exp $	*/
 
 /*
  * Copyright (c) 1981, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)scroll.c	8.3 (Berkeley) 5/4/94";
 #else
-__RCSID("$NetBSD: scroll.c,v 1.25 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: scroll.c,v 1.26 2019/06/09 07:40:14 blymn Exp $");
 #endif
 #endif				/* not lint */
 
@@ -102,7 +102,7 @@ wscrl(WINDOW *win, int nlines)
 #endif
 	wmove(win, win->scr_t, 1);
 	winsdelln(win, 0 - nlines);
-	_cursesi_wmove(win, oy, ox, 1);
+	wmove(win, oy, ox);
 
 	if (win == curscr) {
 		__cputchar('\n');

Index: src/lib/libcurses/erase.c
diff -u src/lib/libcurses/erase.c:1.27 src/lib/libcurses/erase.c:1.28
--- src/lib/libcurses/erase.c:1.27	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/erase.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: erase.c,v 1.27 2019/05/20 22:17:41 blymn Exp $	*/
+/*	$NetBSD: erase.c,v 1.28 2019/06/09 07:40:14 blymn Exp $	*/
 
 /*
  * Copyright (c) 1981, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)erase.c	8.2 (Berkeley) 5/4/94";
 #else
-__RCSID("$NetBSD: erase.c,v 1.27 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: erase.c,v 1.28 2019/06/09 07:40:14 blymn Exp $");
 #endif
 #endif				/* not lint */
 
@@ -105,6 +105,6 @@ werase(WINDOW *win)
 	 * windows - this will result in the (intended) clearing of the
 	 * screen over the area covered by the window. */
 	__touchwin(win);
-	_cursesi_wmove(win, 0, 0, 0);
+	wmove(win, 0, 0);
 	return OK;
 }

Index: src/lib/libcurses/get_wch.c
diff -u src/lib/libcurses/get_wch.c:1.22 src/lib/libcurses/get_wch.c:1.23
--- src/lib/libcurses/get_wch.c:1.22	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/get_wch.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*   $NetBSD: get_wch.c,v 1.22 2019/05/20 22:17:41 blymn Exp $ */
+/*   $NetBSD: get_wch.c,v 1.23 2019/06/09 07:40:14 blymn 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.22 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: get_wch.c,v 1.23 2019/06/09 07:40:14 blymn Exp $");
 #endif						  /* not lint */
 
 #include <errno.h>
@@ -473,7 +473,7 @@ mvget_wch(int y, int x, wint_t *ch)
 int
 mvwget_wch(WINDOW *win, int y, int x, wint_t *ch)
 {
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return wget_wch(win, ch);
@@ -608,7 +608,7 @@ wget_wch(WINDOW *win, wint_t *ch)
 					( inp == KEY_DC ||
 					  inp == KEY_BACKSPACE ||
 					  inp == KEY_LEFT )) {
-				_cursesi_wmove( win, win->cury, win->curx - 1, 0 );
+				wmove( win, win->cury, win->curx - 1);
 				wdelch( win );
 			}
 		} else {

Index: src/lib/libcurses/getch.c
diff -u src/lib/libcurses/getch.c:1.72 src/lib/libcurses/getch.c:1.73
--- src/lib/libcurses/getch.c:1.72	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/getch.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: getch.c,v 1.72 2019/05/20 22:17:41 blymn Exp $	*/
+/*	$NetBSD: getch.c,v 1.73 2019/06/09 07:40:14 blymn 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.72 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: getch.c,v 1.73 2019/06/09 07:40:14 blymn Exp $");
 #endif
 #endif					/* not lint */
 
@@ -716,7 +716,7 @@ mvgetch(int y, int x)
 int
 mvwgetch(WINDOW *win, int y, int x)
 {
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return wgetch(win);
@@ -821,24 +821,25 @@ wgetch(WINDOW *win)
 	if (is_wintouched(win))
 		wrefresh(win);
 	else {
-		if ((win->ocury != win->cury) || (win->ocurx != win->curx)) {
+		if ((_cursesi_screen->curscr->cury != (win->begy + win->cury))
+		    || (_cursesi_screen->curscr->curx != (win->begx + win->curx))) {
 #ifdef DEBUG
-			__CTRACE(__CTRACE_INPUT, "wgetch: ocury %d cury %d ocurx %d curx %d\n",
-			win->ocury, win->cury, win->ocurx, win->curx);
+			__CTRACE(__CTRACE_INPUT, "wgetch: curscr cury %d cury %d curscr curx %d curx %d\n",
+			_cursesi_screen->curscr->cury, win->begy + win->cury,
+			_cursesi_screen->curscr->curx, win->begx + win->curx);
 #endif
 			/*
 			 * Just in case the window is not dirty but the
 			 * cursor was  moved, check and update the 
 			 * cursor location.
 			 */
-			mvcur(win->ocury + win->begy, win->ocurx + win->begx,
-		      	win->cury + win->begy, win->curx + win->begx);
+			mvcur(_cursesi_screen->curscr->cury,
+			    _cursesi_screen->curscr->curx,
+		      	    win->cury + win->begy, win->curx + win->begx);
 			_cursesi_screen->curscr->cury =
-			    win->cury + _cursesi_screen->curscr->begy;
+			    win->cury + win->begy;
 			_cursesi_screen->curscr->curx =
-			    win->curx + _cursesi_screen->curscr->begx;
-			win->ocurx = win->curx;
-			win->ocury = win->cury;
+			    win->curx + win->begx;
 		}
 	}
 

Index: src/lib/libcurses/getstr.c
diff -u src/lib/libcurses/getstr.c:1.26 src/lib/libcurses/getstr.c:1.27
--- src/lib/libcurses/getstr.c:1.26	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/getstr.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: getstr.c,v 1.26 2019/05/20 22:17:41 blymn Exp $	*/
+/*	$NetBSD: getstr.c,v 1.27 2019/06/09 07:40:14 blymn Exp $	*/
 
 /*
  * Copyright (c) 1981, 1993, 1994
@@ -35,7 +35,7 @@
 #if 0
 static char sccsid[] = "@(#)getstr.c	8.2 (Berkeley) 5/4/94";
 #else
-__RCSID("$NetBSD: getstr.c,v 1.26 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: getstr.c,v 1.27 2019/06/09 07:40:14 blymn Exp $");
 #endif
 #endif				/* not lint */
 
@@ -98,7 +98,7 @@ mvgetstr(int y, int x, char *str)
 int
 mvwgetnstr(WINDOW *win, int y, int x, char *str, int n)
 {
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return wgetnstr(win, str, n);
@@ -113,7 +113,7 @@ __warn_references(mvgetstr,
 int
 mvwgetstr(WINDOW *win, int y, int x, char *str)
 {
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return wgetstr(win, str);
@@ -188,7 +188,7 @@ __wgetnstr(WINDOW *win, char *str, int n
 						mvwaddch(win, win->cury,
 						    xpos - 1, ' ');
 					if (win->curx > xpos - 1)
-						_cursesi_wmove(win, win->cury, xpos - 1, 1);
+						wmove(win, win->cury, xpos - 1);
 					xpos--;
 				}
 				if (c == KEY_BACKSPACE || c == KEY_LEFT) {
@@ -198,7 +198,7 @@ __wgetnstr(WINDOW *win, char *str, int n
 					mvwaddch(win, win->cury, win->curx - 1,
 					    ' ');
 					if (win->curx > xpos)
-						_cursesi_wmove(win, win->cury, xpos - 1, 1);
+						wmove(win, win->cury, xpos - 1);
 					xpos--;
 				}
 				str--;
@@ -211,7 +211,7 @@ __wgetnstr(WINDOW *win, char *str, int n
 				if (win->curx > oldx)
 					mvwaddch(win, win->cury, win->curx - 1,
 					    ' ');
-				_cursesi_wmove(win, win->cury, oldx, 1);
+				wmove(win, win->cury, oldx);
 				xpos = oldx;
 			}
 		} else if (c == kc) {
@@ -223,22 +223,22 @@ __wgetnstr(WINDOW *win, char *str, int n
 				while (str != ostr) {
 					mvwaddch(win, win->cury, win->curx - 1,
 					    ' ');
-					_cursesi_wmove(win, win->cury, win->curx - 1, 1);
+					wmove(win, win->cury, win->curx - 1);
 					str--;
 					if (n != -1)
 						/* We're counting chars */
 						remain++;
 				}
 				mvwaddch(win, win->cury, win->curx - 1, ' ');
-				_cursesi_wmove(win, win->cury, win->curx - 1, 1);
+				wmove(win, win->cury, win->curx - 1);
 			} else
 				/* getch() displays the kill character */
 				mvwaddch(win, win->cury, oldx, ' ');
-			_cursesi_wmove(win, win->cury, oldx, 1);
+			wmove(win, win->cury, oldx);
 		} else if (c >= KEY_MIN && c <= KEY_MAX) {
 			/* getch() displays these characters */
 			mvwaddch(win, win->cury, xpos, ' ');
-			_cursesi_wmove(win, win->cury, xpos, 1);
+			wmove(win, win->cury, xpos);
 		} else {
 			if (remain) {
 				if (iscntrl((unsigned char)c))
@@ -248,7 +248,7 @@ __wgetnstr(WINDOW *win, char *str, int n
 				remain--;
 			} else
 				mvwaddch(win, win->cury, xpos, ' ');
-			_cursesi_wmove(win, win->cury, xpos, 1);
+			wmove(win, win->cury, xpos);
 		}
 	}
 

Index: src/lib/libcurses/in_wch.c
diff -u src/lib/libcurses/in_wch.c:1.6 src/lib/libcurses/in_wch.c:1.7
--- src/lib/libcurses/in_wch.c:1.6	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/in_wch.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*   $NetBSD: in_wch.c,v 1.6 2019/05/20 22:17:41 blymn Exp $ */
+/*   $NetBSD: in_wch.c,v 1.7 2019/06/09 07:40:14 blymn Exp $ */
 
 /*
  * Copyright (c) 2005 The NetBSD Foundation Inc.
@@ -36,7 +36,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: in_wch.c,v 1.6 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: in_wch.c,v 1.7 2019/06/09 07:40:14 blymn Exp $");
 #endif						  /* not lint */
 
 #include "curses.h"
@@ -69,7 +69,7 @@ mvin_wch(int y, int x, cchar_t *wcval)
 int
 mvwin_wch(WINDOW *win, int y, int x, cchar_t *wcval)
 {
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return win_wch(win, wcval);
Index: src/lib/libcurses/insstr.c
diff -u src/lib/libcurses/insstr.c:1.6 src/lib/libcurses/insstr.c:1.7
--- src/lib/libcurses/insstr.c:1.6	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/insstr.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*   $NetBSD: insstr.c,v 1.6 2019/05/20 22:17:41 blymn Exp $ */
+/*   $NetBSD: insstr.c,v 1.7 2019/06/09 07:40:14 blymn Exp $ */
 
 /*
  * Copyright (c) 2005 The NetBSD Foundation Inc.
@@ -36,7 +36,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: insstr.c,v 1.6 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: insstr.c,v 1.7 2019/06/09 07:40:14 blymn Exp $");
 #endif						  /* not lint */
 
 #include <string.h>
@@ -100,7 +100,7 @@ int
 mvwinsstr(WINDOW *win, int y, int x, const char *str)
 {
 
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return winsstr(stdscr, str);
@@ -114,7 +114,7 @@ int
 mvwinsnstr(WINDOW *win, int y, int x, const char *str, int n)
 {
 
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return winsnstr(stdscr, str, n);
Index: src/lib/libcurses/instr.c
diff -u src/lib/libcurses/instr.c:1.6 src/lib/libcurses/instr.c:1.7
--- src/lib/libcurses/instr.c:1.6	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/instr.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: instr.c,v 1.6 2019/05/20 22:17:41 blymn Exp $	*/
+/*	$NetBSD: instr.c,v 1.7 2019/06/09 07:40:14 blymn Exp $	*/
 
 /*
  * Copyright 2001 Wasabi Systems, Inc.
@@ -37,7 +37,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: instr.c,v 1.6 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: instr.c,v 1.7 2019/06/09 07:40:14 blymn Exp $");
 #endif				/* not lint */
 
 #include "curses.h"
@@ -92,7 +92,7 @@ __warn_references(mvwinstr,
 int
 mvwinstr(WINDOW *win, int y, int x, char *str)
 {
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return winstr(win, str);
@@ -101,7 +101,7 @@ mvwinstr(WINDOW *win, int y, int x, char
 int
 mvwinnstr(WINDOW *win, int y, int x, char *str, int n)
 {
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return winnstr(win, str, n);

Index: src/lib/libcurses/inch.c
diff -u src/lib/libcurses/inch.c:1.13 src/lib/libcurses/inch.c:1.14
--- src/lib/libcurses/inch.c:1.13	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/inch.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: inch.c,v 1.13 2019/05/20 22:17:41 blymn Exp $	*/
+/*	$NetBSD: inch.c,v 1.14 2019/06/09 07:40:14 blymn Exp $	*/
 
 /*-
  * Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: inch.c,v 1.13 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: inch.c,v 1.14 2019/06/09 07:40:14 blymn Exp $");
 #endif				/* not lint */
 
 #include "curses.h"
@@ -69,7 +69,7 @@ chtype
 mvwinch(WINDOW *win, int y, int x)
 {
 
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return winch(win);
Index: src/lib/libcurses/ins_wch.c
diff -u src/lib/libcurses/ins_wch.c:1.13 src/lib/libcurses/ins_wch.c:1.14
--- src/lib/libcurses/ins_wch.c:1.13	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/ins_wch.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*   $NetBSD: ins_wch.c,v 1.13 2019/05/20 22:17:41 blymn Exp $ */
+/*   $NetBSD: ins_wch.c,v 1.14 2019/06/09 07:40:14 blymn 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.13 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: ins_wch.c,v 1.14 2019/06/09 07:40:14 blymn Exp $");
 #endif						  /* not lint */
 
 #include <string.h>
@@ -72,7 +72,7 @@ mvins_wch(int y, int x, const cchar_t *w
 int
 mvwins_wch(WINDOW *win, int y, int x, const cchar_t *wch)
 {
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return wins_wch(stdscr, wch);
Index: src/lib/libcurses/ins_wstr.c
diff -u src/lib/libcurses/ins_wstr.c:1.13 src/lib/libcurses/ins_wstr.c:1.14
--- src/lib/libcurses/ins_wstr.c:1.13	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/ins_wstr.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*   $NetBSD: ins_wstr.c,v 1.13 2019/05/20 22:17:41 blymn Exp $ */
+/*   $NetBSD: ins_wstr.c,v 1.14 2019/06/09 07:40:14 blymn 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.13 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: ins_wstr.c,v 1.14 2019/06/09 07:40:14 blymn Exp $");
 #endif						  /* not lint */
 
 #include <string.h>
@@ -93,7 +93,7 @@ mvins_nwstr(int y, int x, const wchar_t 
 int
 mvwins_wstr(WINDOW *win, int y, int x, const wchar_t *wstr)
 {
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return wins_wstr(stdscr, wstr);
@@ -106,7 +106,7 @@ mvwins_wstr(WINDOW *win, int y, int x, c
 int
 mvwins_nwstr(WINDOW *win, int y, int x, const wchar_t *wstr, int n)
 {
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return wins_nwstr(stdscr, wstr, n);

Index: src/lib/libcurses/inchstr.c
diff -u src/lib/libcurses/inchstr.c:1.9 src/lib/libcurses/inchstr.c:1.10
--- src/lib/libcurses/inchstr.c:1.9	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/inchstr.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: inchstr.c,v 1.9 2019/05/20 22:17:41 blymn Exp $	*/
+/*	$NetBSD: inchstr.c,v 1.10 2019/06/09 07:40:14 blymn Exp $	*/
 
 /*
  * Copyright 2001 Wasabi Systems, Inc.
@@ -37,7 +37,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: inchstr.c,v 1.9 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: inchstr.c,v 1.10 2019/06/09 07:40:14 blymn Exp $");
 #endif				/* not lint */
 
 #include "curses.h"
@@ -95,7 +95,7 @@ int
 mvwinchstr(WINDOW *win, int y, int x, chtype *chstr)
 {
 
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return winchstr(win, chstr);
@@ -105,7 +105,7 @@ int
 mvwinchnstr(WINDOW *win, int y, int x, chtype *chstr, int n)
 {
 
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return winchnstr(win, chstr, n);

Index: src/lib/libcurses/insch.c
diff -u src/lib/libcurses/insch.c:1.24 src/lib/libcurses/insch.c:1.25
--- src/lib/libcurses/insch.c:1.24	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/insch.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: insch.c,v 1.24 2019/05/20 22:17:41 blymn Exp $	*/
+/*	$NetBSD: insch.c,v 1.25 2019/06/09 07:40:14 blymn Exp $	*/
 
 /*
  * Copyright (c) 1981, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)insch.c	8.2 (Berkeley) 5/4/94";
 #else
-__RCSID("$NetBSD: insch.c,v 1.24 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: insch.c,v 1.25 2019/06/09 07:40:14 blymn Exp $");
 #endif
 #endif				/* not lint */
 
@@ -76,7 +76,7 @@ int
 mvwinsch(WINDOW *win, int y, int x, chtype ch)
 {
 
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return winsch(stdscr, ch);
@@ -126,7 +126,6 @@ winsch(WINDOW *win, chtype ch)
 			wrefresh(win);
 			scroll(win);
 			win->cury--;
-			win->ocury = win->cury;
 		} else
 			return ERR;
 	}

Index: src/lib/libcurses/line.c
diff -u src/lib/libcurses/line.c:1.10 src/lib/libcurses/line.c:1.11
--- src/lib/libcurses/line.c:1.10	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/line.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: line.c,v 1.10 2019/05/20 22:17:41 blymn Exp $	*/
+/*	$NetBSD: line.c,v 1.11 2019/06/09 07:40:14 blymn Exp $	*/
 
 /*-
  * Copyright (c) 1998-1999 Brett Lymn
@@ -31,7 +31,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: line.c,v 1.10 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: line.c,v 1.11 2019/06/09 07:40:14 blymn Exp $");
 #endif				/* not lint */
 
 #include <string.h>
@@ -71,7 +71,7 @@ int
 mvwhline(WINDOW *win, int y, int x, chtype ch, int count)
 {
 
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return whline(win, ch, count);
@@ -97,7 +97,7 @@ whline(WINDOW *win, chtype ch, int count
 	for (i = 0; i < n; i++)
 		mvwaddch(win, win->cury, ocurx + i, ch);
 
-	_cursesi_wmove(win, win->cury, ocurx, 1);
+	wmove(win, win->cury, ocurx);
 	return OK;
 #else
 	cchar_t cch, *cchp;
@@ -143,7 +143,7 @@ int
 mvwvline(WINDOW *win, int y, int x, chtype ch, int count)
 {
 
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return wvline(win, ch, count);
@@ -170,7 +170,7 @@ wvline(WINDOW *win, chtype ch, int count
 	for (i = 0; i < n; i++)
 		mvwaddch(win, ocury + i, ocurx, ch);
 
-	_cursesi_wmove(win, ocury, ocurx, 1);
+	wmove(win, ocury, ocurx);
 	return OK;
 #else
 	cchar_t cch, *cchp;
@@ -208,7 +208,7 @@ int mvwhline_set(WINDOW *win, int y, int
 #ifndef HAVE_WCHAR
 	return ERR;
 #else
-	if ( _cursesi_wmove( win, y , x , 0) == ERR )
+	if ( wmove( win, y , x ) == ERR )
 		return ERR;
 
 	return whline_set( win, wch, n );
@@ -245,7 +245,7 @@ int whline_set(WINDOW *win, const cchar_
 		mvwadd_wch(win, win->cury, ocurx + i * cw, &cc);
 	}
 
-	_cursesi_wmove(win, win->cury, ocurx, 1);
+	wmove(win, win->cury, ocurx);
 	__sync(win);
 	return OK;
 #endif /* HAVE_WCHAR */
@@ -274,7 +274,7 @@ int mvwvline_set(WINDOW *win, int y, int
 #ifndef HAVE_WCHAR
 	return ERR;
 #else
-	if (_cursesi_wmove(win, y, x, 0) == ERR)
+	if (wmove(win, y, x) == ERR)
 		return ERR;
 
 	return wvline_set(win, wch, n);
@@ -307,7 +307,7 @@ int wvline_set(WINDOW *win, const cchar_
 #endif /* DEBUG */
 	}
 
-	_cursesi_wmove(win, ocury, ocurx, 1);
+	wmove(win, ocury, ocurx);
 	__sync(win);
 	return OK;
 #endif /* HAVE_WCHAR */

Index: src/lib/libcurses/newwin.c
diff -u src/lib/libcurses/newwin.c:1.56 src/lib/libcurses/newwin.c:1.57
--- src/lib/libcurses/newwin.c:1.56	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/newwin.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: newwin.c,v 1.56 2019/05/20 22:17:41 blymn Exp $	*/
+/*	$NetBSD: newwin.c,v 1.57 2019/06/09 07:40:14 blymn Exp $	*/
 
 /*
  * Copyright (c) 1981, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)newwin.c	8.3 (Berkeley) 7/27/94";
 #else
-__RCSID("$NetBSD: newwin.c,v 1.56 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: newwin.c,v 1.57 2019/06/09 07:40:14 blymn Exp $");
 #endif
 #endif				/* not lint */
 
@@ -375,7 +375,7 @@ __makenew(SCREEN *screen, int nlines, in
 	__CTRACE(__CTRACE_WINDOW, "makenew: ncols = %d\n", ncols);
 #endif
 	win->screen = screen;
-	win->cury = win->curx = win->ocurx = win->ocury = 0;
+	win->cury = win->curx = 0;
 	win->maxy = nlines;
 	win->maxx = ncols;
 	win->reqy = nlines;

Index: src/lib/libcurses/printw.c
diff -u src/lib/libcurses/printw.c:1.28 src/lib/libcurses/printw.c:1.29
--- src/lib/libcurses/printw.c:1.28	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/printw.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: printw.c,v 1.28 2019/05/20 22:17:41 blymn Exp $	*/
+/*	$NetBSD: printw.c,v 1.29 2019/06/09 07:40:14 blymn Exp $	*/
 
 /*
  * Copyright (c) 1981, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)printw.c	8.3 (Berkeley) 5/4/94";
 #else
-__RCSID("$NetBSD: printw.c,v 1.28 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: printw.c,v 1.29 2019/06/09 07:40:14 blymn Exp $");
 #endif
 #endif				/* not lint */
 
@@ -102,7 +102,7 @@ mvwprintw(WINDOW * win, int y, int x, co
 	va_list ap;
 	int     ret;
 
-	if (_cursesi_wmove(win, y, x, 0) != OK)
+	if (wmove(win, y, x) != OK)
 		return ERR;
 
 	va_start(ap, fmt);

Index: src/lib/libcurses/refresh.c
diff -u src/lib/libcurses/refresh.c:1.110 src/lib/libcurses/refresh.c:1.111
--- src/lib/libcurses/refresh.c:1.110	Mon May 20 22:17:41 2019
+++ src/lib/libcurses/refresh.c	Sun Jun  9 07:40:14 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: refresh.c,v 1.110 2019/05/20 22:17:41 blymn Exp $	*/
+/*	$NetBSD: refresh.c,v 1.111 2019/06/09 07:40:14 blymn Exp $	*/
 
 /*
  * Copyright (c) 1981, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)refresh.c	8.7 (Berkeley) 8/13/94";
 #else
-__RCSID("$NetBSD: refresh.c,v 1.110 2019/05/20 22:17:41 blymn Exp $");
+__RCSID("$NetBSD: refresh.c,v 1.111 2019/06/09 07:40:14 blymn Exp $");
 #endif
 #endif				/* not lint */
 
@@ -270,7 +270,8 @@ _wnoutrefresh(WINDOW *win, int begy, int
 			continue;
 #ifdef DEBUG
 		__CTRACE(__CTRACE_REFRESH,
-		"_wnoutrefresh: line is dirty\n");
+		"_wnoutrefresh: line y_off %d (dy_off %d) is dirty\n",
+			y_off, dy_off);
 #endif
 
 		wlp = swin->alines[wy];
@@ -1435,8 +1436,8 @@ domvcur(WINDOW *win, int oy, int ox, int
 {
 
 #ifdef DEBUG
-	__CTRACE(__CTRACE_REFRESH, "domvcur: (%x,%d)=>(%d,%d)\n",
-	    oy, ox, ny, nx );
+	__CTRACE(__CTRACE_REFRESH, "domvcur: (%d,%d)=>(%d,%d) win 0x%p\n",
+	    oy, ox, ny, nx, win );
 #endif /* DEBUG */
 
 	__unsetattr(1);
@@ -1452,10 +1453,6 @@ domvcur(WINDOW *win, int oy, int ox, int
 	win->alines[oy]->flags &= ~__ISPASTEOL;
 	win->alines[ny]->flags &= ~__ISPASTEOL;
 
-	/* Update old cursor positions to current location */
-	win->ocury = ny;
-	win->ocurx = nx;
-
 	__mvcur(oy, ox, ny, nx, 1);
 }
 

Reply via email to