Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 31 Oct 2014 23:10:58 +0000 (UTC)
From:      Jean-Sebastien Pedron <dumbbell@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r273921 - in stable/10: sys/dev/vt sys/sys usr.sbin/vidcontrol
Message-ID:  <201410312310.s9VNAwCs022688@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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@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",



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201410312310.s9VNAwCs022688>