Module Name: src Committed By: uwe Date: Tue Jun 30 21:02:24 UTC 2020
Modified Files: src/lib/libcurses: line.c Log Message: whline_set - save/restore the y coordinate too. Reaching the right side of the screen can cause a line wrap. PR lib/55434 To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 src/lib/libcurses/line.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/line.c diff -u src/lib/libcurses/line.c:1.11 src/lib/libcurses/line.c:1.12 --- src/lib/libcurses/line.c:1.11 Sun Jun 9 07:40:14 2019 +++ src/lib/libcurses/line.c Tue Jun 30 21:02:24 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: line.c,v 1.11 2019/06/09 07:40:14 blymn Exp $ */ +/* $NetBSD: line.c,v 1.12 2020/06/30 21:02:24 uwe Exp $ */ /*- * Copyright (c) 1998-1999 Brett Lymn @@ -31,7 +31,7 @@ #include <sys/cdefs.h> #ifndef lint -__RCSID("$NetBSD: line.c,v 1.11 2019/06/09 07:40:14 blymn Exp $"); +__RCSID("$NetBSD: line.c,v 1.12 2020/06/30 21:02:24 uwe Exp $"); #endif /* not lint */ #include <string.h> @@ -220,7 +220,7 @@ int whline_set(WINDOW *win, const cchar_ #ifndef HAVE_WCHAR return ERR; #else - int ocurx, wcn, i, cw; + int ocury, ocurx, wcn, i, cw; cchar_t cc; cw = wcwidth( wch->vals[ 0 ]); @@ -232,6 +232,7 @@ int whline_set(WINDOW *win, const cchar_ #ifdef DEBUG __CTRACE(__CTRACE_LINE, "whline_set: line of %d\n", wcn); #endif /* DEBUG */ + ocury = win->cury; ocurx = win->curx; memcpy( &cc, wch, sizeof( cchar_t )); @@ -240,12 +241,12 @@ int whline_set(WINDOW *win, const cchar_ for (i = 0; i < wcn; i++ ) { #ifdef DEBUG __CTRACE(__CTRACE_LINE, "whline_set: (%d,%d)\n", - win->cury, ocurx + i * cw); + ocury, ocurx + i * cw); #endif /* DEBUG */ - mvwadd_wch(win, win->cury, ocurx + i * cw, &cc); + mvwadd_wch(win, ocury, ocurx + i * cw, &cc); } - wmove(win, win->cury, ocurx); + wmove(win, ocury, ocurx); __sync(win); return OK; #endif /* HAVE_WCHAR */