svn commit: r273921 - in stable/10: sys/dev/vt sys/sys usr.sbin/vidcontrol
Jean-Sebastien Pedron
dumbbell at FreeBSD.org
Fri Oct 31 23:10:59 UTC 2014
Author: dumbbell
Date: Fri Oct 31 23:10:58 2014
New Revision: 273921
URL: https://svnweb.freebsd.org/changeset/base/273921
Log:
vt(4): Add PIO_VFONT_DEFAULT ioctl to restore the default builtin font
To restore the default font using vidcontrol(1), use the "-f" flag
without an argument:
vidcontrol -f < /dev/ttyv0
PR: 193910
Differential Revision: https://reviews.freebsd.org/D971
Submitted by: Marcin Cieslak <saper at saper.info>
Reviewed by: ray@, emaste@
Approved by: ray@
MFC of: r273544
Modified:
stable/10/sys/dev/vt/vt_core.c
stable/10/sys/sys/consio.h
stable/10/usr.sbin/vidcontrol/vidcontrol.1
stable/10/usr.sbin/vidcontrol/vidcontrol.c
Directory Properties:
stable/10/ (props changed)
Modified: stable/10/sys/dev/vt/vt_core.c
==============================================================================
--- stable/10/sys/dev/vt/vt_core.c Fri Oct 31 22:28:10 2014 (r273920)
+++ stable/10/sys/dev/vt/vt_core.c Fri Oct 31 23:10:58 2014 (r273921)
@@ -2211,6 +2211,11 @@ skip_thunk:
vtfont_unref(vf);
return (error);
}
+ case PIO_VFONT_DEFAULT: {
+ /* Reset to default font. */
+ error = vt_change_font(vw, &vt_font_default);
+ return (error);
+ }
case GIO_SCRNMAP: {
scrmap_t *sm = (scrmap_t *)data;
Modified: stable/10/sys/sys/consio.h
==============================================================================
--- stable/10/sys/sys/consio.h Fri Oct 31 22:28:10 2014 (r273920)
+++ stable/10/sys/sys/consio.h Fri Oct 31 23:10:58 2014 (r273921)
@@ -239,6 +239,7 @@ typedef struct vfnt vfnt_t;
#define GIO_FONT8x16 _IOR('c', 69, fnt16_t)
#define PIO_VFONT _IOW('c', 70, vfnt_t)
#define GIO_VFONT _IOR('c', 71, vfnt_t)
+#define PIO_VFONT_DEFAULT _IO('c', 72)
/* get video mode information */
struct colors {
Modified: stable/10/usr.sbin/vidcontrol/vidcontrol.1
==============================================================================
--- stable/10/usr.sbin/vidcontrol/vidcontrol.1 Fri Oct 31 22:28:10 2014 (r273920)
+++ stable/10/usr.sbin/vidcontrol/vidcontrol.1 Fri Oct 31 23:10:58 2014 (r273921)
@@ -26,9 +26,11 @@
.Op Fl c Ar appearance
.Oo
.Fl f
+.Oo
.Op Ar size
.Ar file
.Oc
+.Oc
.Op Fl g Ar geometry
.Op Fl h Ar size
.Op Fl i Cm adapter | mode
@@ -136,8 +138,10 @@ The latter is actually a simulation.
Print out current output screen map.
.It Xo
.Fl f
+.Oo
.Op Ar size
.Ar file
+.Oc
.Xc
Load font
.Ar file
@@ -158,6 +162,14 @@ may be omitted, in this case
.Nm
will try to guess it from the size of font file.
.Pp
+When using
+.Xr vt 4
+both
+.Ar size
+and
+.Ar font
+can be omitted, and the default font will be loaded.
+.Pp
Note that older video cards, such as MDA and CGA, do not support
software font.
See also
Modified: stable/10/usr.sbin/vidcontrol/vidcontrol.c
==============================================================================
--- stable/10/usr.sbin/vidcontrol/vidcontrol.c Fri Oct 31 22:28:10 2014 (r273920)
+++ stable/10/usr.sbin/vidcontrol/vidcontrol.c Fri Oct 31 23:10:58 2014 (r273921)
@@ -197,7 +197,7 @@ usage(void)
{
if (vt4_mode)
fprintf(stderr, "%s\n%s\n%s\n%s\n%s\n",
-"usage: vidcontrol [-CHPpx] [-b color] [-c appearance] [-f [size] file]",
+"usage: vidcontrol [-CHPpx] [-b color] [-c appearance] [-f [[size] file]]",
" [-g geometry] [-h size] [-i adapter | mode]",
" [-M char] [-m on | off] [-r foreground background]",
" [-S on | off] [-s number] [-T xterm | cons25] [-t N | off]",
@@ -409,6 +409,19 @@ load_vt4mappingtable(unsigned int nmappi
return (t);
}
+/*
+ * Set the default vt font.
+ */
+
+static void
+load_default_vt4font(void)
+{
+ if (ioctl(0, PIO_VFONT_DEFAULT) == -1) {
+ revert();
+ errc(1, errno, "loading default vt font");
+ }
+}
+
static int
load_vt4font(FILE *f)
{
@@ -1328,7 +1341,7 @@ main(int argc, char **argv)
dumpopt = DUMP_FBF;
termmode = NULL;
if (vt4_mode)
- opts = "b:Cc:f:g:h:Hi:M:m:pPr:S:s:T:t:x";
+ opts = "b:Cc:fg:h:Hi:M:m:pPr:S:s:T:t:x";
else
opts = "b:Cc:df:g:h:Hi:l:LM:m:pPr:S:s:T:t:x";
@@ -1349,15 +1362,23 @@ main(int argc, char **argv)
print_scrnmap();
break;
case 'f':
- type = optarg;
- font = nextarg(argc, argv, &optind, 'f', 0);
+ optarg = nextarg(argc, argv, &optind, 'f', 0);
+ if (optarg != NULL) {
+ font = nextarg(argc, argv, &optind, 'f', 0);
+
+ if (font == NULL) {
+ type = NULL;
+ font = optarg;
+ } else
+ type = optarg;
- if (font == NULL) {
- type = NULL;
- font = optarg;
- }
+ load_font(type, font);
+ } else {
+ if (!vt4_mode)
+ usage(); /* Switch syscons to ROM? */
- load_font(type, font);
+ load_default_vt4font();
+ }
break;
case 'g':
if (sscanf(optarg, "%dx%d",
More information about the svn-src-stable-10
mailing list