Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 5 Feb 2019 16:59:29 +0000 (UTC)
From:      Bruce Evans <bde@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r343778 - in head/sys: dev/syscons teken teken/libteken
Message-ID:  <201902051659.x15GxTwq009425@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bde
Date: Tue Feb  5 16:59:29 2019
New Revision: 343778
URL: https://svnweb.freebsd.org/changeset/base/343778

Log:
  My recent fix for programmable function keys in syscons only worked
  when TEKEN_CONS25 is configured.  Fix this by adding a function to
  set the flag that enables the fix and always calling this function
  for syscons.
  
  Expand the man page for teken_set_cons25().  This function is not
  very useful since it can only set but not clear 1 flag.  In practice,
  it is only used when TEKEN_CONS25 is configured and all that does is
  choose the the default emulation for syscons at compile time.

Modified:
  head/sys/dev/syscons/scterm-teken.c
  head/sys/teken/libteken/teken.3
  head/sys/teken/teken.c
  head/sys/teken/teken.h

Modified: head/sys/dev/syscons/scterm-teken.c
==============================================================================
--- head/sys/dev/syscons/scterm-teken.c	Tue Feb  5 15:34:55 2019	(r343777)
+++ head/sys/dev/syscons/scterm-teken.c	Tue Feb  5 16:59:29 2019	(r343778)
@@ -144,6 +144,7 @@ scteken_init(scr_stat *scp, void **softc, int code)
 #ifdef TEKEN_CONS25
 		teken_set_cons25(&ts->ts_teken);
 #endif /* TEKEN_CONS25 */
+		teken_set_cons25keys(&ts->ts_teken);
 		scteken_sync_internal(scp, ts);
 		break;
 	}

Modified: head/sys/teken/libteken/teken.3
==============================================================================
--- head/sys/teken/libteken/teken.3	Tue Feb  5 15:34:55 2019	(r343777)
+++ head/sys/teken/libteken/teken.3	Tue Feb  5 16:59:29 2019	(r343778)
@@ -66,6 +66,8 @@
 .Fn teken_set_8bit "teken_t *t"
 .Ft void
 .Fn teken_set_cons25 "teken_t *t"
+.Ft void
+.Fn teken_set_cons25keys "teken_t *t"
 .Sh DESCRIPTION
 The
 .Nm
@@ -194,11 +196,24 @@ which can be used to support character sets like CP437
 .Pp
 The
 .Fn teken_set_cons25
-function switches terminal emulation to
+function sets the terminal emulation to
 .Dv cons25 ,
-which is used by versions of
+which was the default for
+.Xr syscons 4
+in versions of
 .Fx
 prior to 9.0.
+This function is only useful for initialization.
+The emulation can be changed at any time using an escape sequence,
+and this function is not used then.
+.Pp
+The
+.Fn teken_set_cons25keys
+function tells the
+.Fn teken_get_sequence
+function to not interpret special keys in
+.Dv cons25
+mode.
 .Sh SEE ALSO
 .Xr ncurses 3 ,
 .Xr termcap 3 ,

Modified: head/sys/teken/teken.c
==============================================================================
--- head/sys/teken/teken.c	Tue Feb  5 15:34:55 2019	(r343777)
+++ head/sys/teken/teken.c	Tue Feb  5 16:59:29 2019	(r343778)
@@ -412,7 +412,14 @@ void
 teken_set_cons25(teken_t *t)
 {
 
-	t->t_stateflags |= TS_CONS25 | TS_CONS25KEYS;
+	t->t_stateflags |= TS_CONS25;
+}
+
+void
+teken_set_cons25keys(teken_t *t)
+{
+
+	t->t_stateflags |= TS_CONS25KEYS;
 }
 
 /*

Modified: head/sys/teken/teken.h
==============================================================================
--- head/sys/teken/teken.h	Tue Feb  5 15:34:55 2019	(r343777)
+++ head/sys/teken/teken.h	Tue Feb  5 16:59:29 2019	(r343778)
@@ -212,6 +212,7 @@ const char *teken_get_sequence(const teken_t *, unsign
 /* Legacy features. */
 void	teken_set_8bit(teken_t *);
 void	teken_set_cons25(teken_t *);
+void	teken_set_cons25keys(teken_t *);
 
 /* Color conversion. */
 teken_color_t teken_256to16(teken_color_t);



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