svn commit: r343778 - in head/sys: dev/syscons teken teken/libteken
Bruce Evans
bde at FreeBSD.org
Tue Feb 5 16:59:31 UTC 2019
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);
More information about the svn-src-all
mailing list