Module Name: src
Committed By: rin
Date: Wed Jul 31 14:29:54 UTC 2019
Modified Files:
src/sys/dev/wscons: wsdisplay_vcons.c
Log Message:
When font is switched, not only putchar, but also other ri_ops can be
changed by backend driver, e.g., see rasops1.c:
https://nxr.netbsd.org/xref/src/sys/dev/rasops/rasops1.c#58
To generate a diff of this commit:
cvs rdiff -u -r1.39 -r1.40 src/sys/dev/wscons/wsdisplay_vcons.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/wscons/wsdisplay_vcons.c
diff -u src/sys/dev/wscons/wsdisplay_vcons.c:1.39 src/sys/dev/wscons/wsdisplay_vcons.c:1.40
--- src/sys/dev/wscons/wsdisplay_vcons.c:1.39 Sat Dec 1 00:28:45 2018
+++ src/sys/dev/wscons/wsdisplay_vcons.c Wed Jul 31 14:29:54 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: wsdisplay_vcons.c,v 1.39 2018/12/01 00:28:45 msaitoh Exp $ */
+/* $NetBSD: wsdisplay_vcons.c,v 1.40 2019/07/31 14:29:54 rin Exp $ */
/*-
* Copyright (c) 2005, 2006 Michael Lorenz
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wsdisplay_vcons.c,v 1.39 2018/12/01 00:28:45 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wsdisplay_vcons.c,v 1.40 2019/07/31 14:29:54 rin Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -430,8 +430,23 @@ vcons_load_font(void *v, void *cookie, s
/* allocate new buffers */
vcons_alloc_buffers(vd, scr);
- /* save the potentially changed putchar */
+ /* save the potentially changed ri_ops */
+ vd->eraserows = ri->ri_ops.eraserows;
+ vd->erasecols = ri->ri_ops.erasecols;
scr->putchar = ri->ri_ops.putchar;
+ vd->cursor = ri->ri_ops.cursor;
+
+ if (scr->scr_flags & VCONS_NO_COPYCOLS) {
+ vd->copycols = vcons_copycols_noread;
+ } else {
+ vd->copycols = ri->ri_ops.copycols;
+ }
+
+ if (scr->scr_flags & VCONS_NO_COPYROWS) {
+ vd->copyrows = vcons_copyrows_noread;
+ } else {
+ vd->copyrows = ri->ri_ops.copyrows;
+ }
/* and put our wrappers back */
ri->ri_ops.eraserows = vcons_eraserows;