SHA256
1
0
forked from pool/kbd
kbd/kbd-1.15.2-dumpkeys-C-opt.patch

83 lines
2.5 KiB
Diff
Raw Normal View History

Index: docs/man/man1/dumpkeys.1.in
===================================================================
--- docs/man/man1/dumpkeys.1.in.orig
+++ docs/man/man1/dumpkeys.1.in
@@ -4,6 +4,7 @@
dumpkeys \- dump keyboard translation tables
.SH SYNOPSIS
.B dumpkeys
+.RI [ \-C\ '<vc>' | \-\-console='<vc>' ]
[
.\".B \-1Vdfhiklnstv
.B \-h \-\-help \-i \-\-short\-info \-l \-s \-\-long\-info
@@ -212,6 +213,12 @@ loadkeys how to interpret the keymap. (F
.B \-V \-\-version
Prints version number and exits.
.LP
+The affected console device can be specified using the
+.I -C
+(or
+.I --console
+) option. This option supports exactly one device name.
+.LP
.SH FILES
.PD 0
.TP 20
Index: src/dumpkeys.c
===================================================================
--- src/dumpkeys.c.orig
+++ src/dumpkeys.c
@@ -41,6 +41,8 @@ usage(int rc)
" -t, --funcs-only display only the function key strings;\n"
" -k, --keys-only display only key bindings;\n"
" -d, --compose-only display only compose key combinations;\n"
+ " -C <vc>\n"
+ " --console=<vc> Indicate the virtual console device to be used;\n"
" -c, --charset="));
lk_list_charsets(stderr);
fprintf(stderr, _(
@@ -55,7 +57,7 @@ usage(int rc)
int main(int argc, char *argv[])
{
- const char *short_opts = "hilvsnf1tkdS:c:V";
+ const char *short_opts = "hilvsnf1tkdS:C:c:V";
const struct option long_opts[] = {
{ "help", no_argument, NULL, 'h' },
{ "short-info", no_argument, NULL, 'i' },
@@ -68,6 +70,7 @@ int main(int argc, char *argv[])
{ "keys-only", no_argument, NULL, 'k' },
{ "compose-only", no_argument, NULL, 'd' },
{ "charset", required_argument, NULL, 'c' },
+ { "console", required_argument, NULL, 'C' },
{ "verbose", no_argument, NULL, 'v' },
{ "version", no_argument, NULL, 'V' },
{ NULL, 0, NULL, 0 }
@@ -82,6 +85,7 @@ int main(int argc, char *argv[])
char funcs_only = 0;
char keys_only = 0;
char diac_only = 0;
+ char * console = NULL;
struct lk_ctx *ctx;
@@ -135,6 +139,9 @@ int main(int argc, char *argv[])
}
printf("charset \"%s\"\n", optarg);
break;
+ case 'C':
+ console = optarg;
+ break;
case 'V':
print_version_and_exit();
break;
@@ -150,7 +157,7 @@ int main(int argc, char *argv[])
if (optind < argc)
usage(EX_USAGE);
- if ((fd = getfd(NULL)) < 0)
+ if ((fd = getfd(console)) < 0)
kbd_error(EXIT_FAILURE, 0, _("Couldn't get a file descriptor referring to the console"));
/* check whether the keyboard is in Unicode mode */