Module Name: src
Committed By: rin
Date: Fri Aug 9 12:05:52 UTC 2019
Modified Files:
src/sys/dev/rasops: rasops.c rasops1-4_putchar.h rasops1.c
rasops1_putchar_width.h rasops_putchar.h rasops_putchar_width.h
Log Message:
Correctly check whether character is in font in rasops_mapchar().
Also, make sure that in putchar functions for completeness.
To generate a diff of this commit:
cvs rdiff -u -r1.119 -r1.120 src/sys/dev/rasops/rasops.c
cvs rdiff -u -r1.1 -r1.2 src/sys/dev/rasops/rasops1-4_putchar.h
cvs rdiff -u -r1.35 -r1.36 src/sys/dev/rasops/rasops1.c
cvs rdiff -u -r1.4 -r1.5 src/sys/dev/rasops/rasops1_putchar_width.h
cvs rdiff -u -r1.6 -r1.7 src/sys/dev/rasops/rasops_putchar.h
cvs rdiff -u -r1.12 -r1.13 src/sys/dev/rasops/rasops_putchar_width.h
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/rasops/rasops.c
diff -u src/sys/dev/rasops/rasops.c:1.119 src/sys/dev/rasops/rasops.c:1.120
--- src/sys/dev/rasops/rasops.c:1.119 Fri Aug 9 11:42:03 2019
+++ src/sys/dev/rasops/rasops.c Fri Aug 9 12:05:51 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: rasops.c,v 1.119 2019/08/09 11:42:03 rin Exp $ */
+/* $NetBSD: rasops.c,v 1.120 2019/08/09 12:05:51 rin Exp $ */
/*-
* Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rasops.c,v 1.119 2019/08/09 11:42:03 rin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rasops.c,v 1.120 2019/08/09 12:05:51 rin Exp $");
#ifdef _KERNEL_OPT
#include "opt_rasops.h"
@@ -598,18 +598,11 @@ rasops_mapchar(void *cookie, int c, u_in
KASSERT(ri->ri_font != NULL);
if ((c = wsfont_map_unichar(ri->ri_font, c)) < 0 ||
- c < ri->ri_font->firstchar) {
+ !CHAR_IN_FONT(c, ri->ri_font)) {
*cp = ' ';
return 0;
}
-#if 0 /* XXXRO */
- if (CHAR_IN_FONT(c, ri->ri_font)) {
- *cp = ' ';
- return 0;
- }
-#endif
-
*cp = c;
return 5;
}
Index: src/sys/dev/rasops/rasops1-4_putchar.h
diff -u src/sys/dev/rasops/rasops1-4_putchar.h:1.1 src/sys/dev/rasops/rasops1-4_putchar.h:1.2
--- src/sys/dev/rasops/rasops1-4_putchar.h:1.1 Wed Aug 7 12:36:36 2019
+++ src/sys/dev/rasops/rasops1-4_putchar.h Fri Aug 9 12:05:51 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: rasops1-4_putchar.h,v 1.1 2019/08/07 12:36:36 rin Exp $ */
+/* $NetBSD: rasops1-4_putchar.h,v 1.2 2019/08/09 12:05:51 rin Exp $ */
/* NetBSD: rasops_bitops.h,v 1.23 2019/08/02 04:39:09 rin Exp */
/*-
@@ -97,6 +97,9 @@ NAME(RASOPS_DEPTH)(void *cookie, int row
hp = NULL; /* XXX GCC */
+ if (__predict_false(!CHAR_IN_FONT(uc, font)))
+ return;
+
#ifdef RASOPS_CLIPPING
/* Catches 'row < 0' case too */
if ((unsigned)row >= (unsigned)ri->ri_rows)
Index: src/sys/dev/rasops/rasops1.c
diff -u src/sys/dev/rasops/rasops1.c:1.35 src/sys/dev/rasops/rasops1.c:1.36
--- src/sys/dev/rasops/rasops1.c:1.35 Wed Aug 7 12:27:49 2019
+++ src/sys/dev/rasops/rasops1.c Fri Aug 9 12:05:51 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: rasops1.c,v 1.35 2019/08/07 12:27:49 rin Exp $ */
+/* $NetBSD: rasops1.c,v 1.36 2019/08/09 12:05:51 rin Exp $ */
/*-
* Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rasops1.c,v 1.35 2019/08/07 12:27:49 rin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rasops1.c,v 1.36 2019/08/09 12:05:51 rin Exp $");
#include "opt_rasops.h"
@@ -100,6 +100,9 @@ rasops1_putchar(void *cookie, int row, i
hp = NULL; /* XXX GCC */
+ if (__predict_false(!CHAR_IN_FONT(uc, font)))
+ return;
+
#ifdef RASOPS_CLIPPING
/* Catches 'row < 0' case too */
if ((unsigned)row >= (unsigned)ri->ri_rows)
Index: src/sys/dev/rasops/rasops1_putchar_width.h
diff -u src/sys/dev/rasops/rasops1_putchar_width.h:1.4 src/sys/dev/rasops/rasops1_putchar_width.h:1.5
--- src/sys/dev/rasops/rasops1_putchar_width.h:1.4 Wed Aug 7 12:27:49 2019
+++ src/sys/dev/rasops/rasops1_putchar_width.h Fri Aug 9 12:05:51 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: rasops1_putchar_width.h,v 1.4 2019/08/07 12:27:49 rin Exp $ */
+/* $NetBSD: rasops1_putchar_width.h,v 1.5 2019/08/09 12:05:51 rin Exp $ */
/* NetBSD: rasops1.c,v 1.28 2019/07/25 03:02:44 rin Exp */
/*-
@@ -69,6 +69,9 @@ PUTCHAR_WIDTH(RASOPS_WIDTH)(void *cookie
hp = NULL; /* XXX GCC */
+ if (__predict_false(!CHAR_IN_FONT(uc, font)))
+ return;
+
#ifdef RASOPS_CLIPPING
/* Catches 'row < 0' case too */
if ((unsigned)row >= (unsigned)ri->ri_rows)
Index: src/sys/dev/rasops/rasops_putchar.h
diff -u src/sys/dev/rasops/rasops_putchar.h:1.6 src/sys/dev/rasops/rasops_putchar.h:1.7
--- src/sys/dev/rasops/rasops_putchar.h:1.6 Wed Aug 7 12:33:48 2019
+++ src/sys/dev/rasops/rasops_putchar.h Fri Aug 9 12:05:51 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: rasops_putchar.h,v 1.6 2019/08/07 12:33:48 rin Exp $ */
+/* $NetBSD: rasops_putchar.h,v 1.7 2019/08/09 12:05:51 rin Exp $ */
/* NetBSD: rasops8.c,v 1.41 2019/07/25 03:02:44 rin Exp */
/*-
@@ -106,7 +106,7 @@ NAME(RASOPS_DEPTH)(void *cookie, int row
hp = NULL; /* XXX GCC */
- if (!CHAR_IN_FONT(uc, font))
+ if (__predict_false(!CHAR_IN_FONT(uc, font)))
return;
#ifdef RASOPS_CLIPPING
Index: src/sys/dev/rasops/rasops_putchar_width.h
diff -u src/sys/dev/rasops/rasops_putchar_width.h:1.12 src/sys/dev/rasops/rasops_putchar_width.h:1.13
--- src/sys/dev/rasops/rasops_putchar_width.h:1.12 Wed Aug 7 12:27:49 2019
+++ src/sys/dev/rasops/rasops_putchar_width.h Fri Aug 9 12:05:51 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: rasops_putchar_width.h,v 1.12 2019/08/07 12:27:49 rin Exp $ */
+/* $NetBSD: rasops_putchar_width.h,v 1.13 2019/08/09 12:05:51 rin Exp $ */
/* NetBSD: rasops8.c,v 1.41 2019/07/25 03:02:44 rin Exp */
/*-
@@ -220,7 +220,7 @@ PUTCHAR_WIDTH(RASOPS_DEPTH, RASOPS_WIDTH
#endif
/* check if character fits into font limits */
- if (!CHAR_IN_FONT(uc, font))
+ if (__predict_false(!CHAR_IN_FONT(uc, font)))
return;
/* Recompute stamp? */