summaryrefslogtreecommitdiff
path: root/lib/libcurses
diff options
context:
space:
mode:
authoruwe <uwe@NetBSD.org>2020-06-30 21:02:24 +0000
committeruwe <uwe@NetBSD.org>2020-06-30 21:02:24 +0000
commit14d7baafaa9571bb02d33be9ec9363ab63817c19 (patch)
tree076a96f792ab1040e2c5d69e4027696c8064ae7a /lib/libcurses
parent59e65c44d2b28ed01a37954140a3185f4978c60d (diff)
whline_set - save/restore the y coordinate too.
Reaching the right side of the screen can cause a line wrap. PR lib/55434
Diffstat (limited to 'lib/libcurses')
-rw-r--r--lib/libcurses/line.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/libcurses/line.c b/lib/libcurses/line.c
index 0cc423768a4..7c621603997 100644
--- a/lib/libcurses/line.c
+++ b/lib/libcurses/line.c
@@ -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_t *wch, int n)
#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_t *wch, int n)
#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_t *wch, int n)
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 */