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? */