2
* setmetamode.c - aeb, 940130
4
* Call: setmetamode { metabit | escprefix }
5
* and report the setting before and after.
6
* Without arguments setmetamode will only report.
12
#include <sys/ioctl.h>
21
" setmetamode [ metabit | meta | bit | escprefix | esc | prefix ]\n"
22
"Each vt has his own copy of this bit. Use\n"
23
" setmetamode [arg] < /dev/ttyn\n"
24
"to change the settings of another vt.\n"
25
"The setting before and after the change are reported.\n"
36
s = _("Meta key sets high order bit\n");
39
s = _("Meta key gives Esc prefix\n");
42
s = _("Strange mode for Meta key?\n");
51
{ "metabit", K_METABIT },
52
{ "meta", K_METABIT },
54
{ "escprefix", K_ESCPREFIX },
55
{ "esc", K_ESCPREFIX },
56
{ "prefix", K_ESCPREFIX }
59
#define SIZE(a) (sizeof(a)/sizeof(a[0]))
62
main(int argc, char **argv) {
66
set_progname(argv[0]);
68
setlocale(LC_ALL, "");
69
bindtextdomain(PACKAGE, LOCALEDIR);
72
if (argc == 2 && !strcmp(argv[1], "-V"))
73
print_version_and_exit();
75
if (ioctl(0, KDGKBMETA, &ometa)) {
78
_("Error reading current setting. Maybe stdin is not a VT?\n"));
87
nmeta = 0; /* make gcc happy */
88
for (mp = metas; mp-metas < SIZE(metas); mp++) {
89
if(!strcmp(argv[1], mp->name)) {
94
fprintf(stderr, _("unrecognized argument: _%s_\n\n"), argv[1]);
98
printf(_("old state: "));
100
if (ioctl(0, KDSKBMETA, nmeta)) {
104
printf(_("new state: "));