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