X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=console-tools%2Fdumpkmap.c;h=5b5b296b4581ca1b568d24862dc5653fac62c8be;hb=d1b6078e5d614993de2a858e85f1dc06cfe5539b;hp=4ab711e5507eb30b2e2829ac37480127688eba25;hpb=dd19c6990496023fe23fefef8f1798740f7d39c6;p=oweals%2Fbusybox.git diff --git a/console-tools/dumpkmap.c b/console-tools/dumpkmap.c index 4ab711e55..5b5b296b4 100644 --- a/console-tools/dumpkmap.c +++ b/console-tools/dumpkmap.c @@ -20,7 +20,6 @@ * */ -#include "busybox.h" #include #include #include @@ -28,6 +27,7 @@ #include #include #include +#include "busybox.h" /* From */ struct kbentry { @@ -35,11 +35,11 @@ struct kbentry { unsigned char kb_index; unsigned short kb_value; }; -static const int KDGKBENT = 0x4B46; /* gets one entry in translation table */ +#define KDGKBENT 0x4B46 /* gets one entry in translation table */ /* From */ -static const int NR_KEYS = 128; -static const int MAX_NR_KEYMAPS = 256; +#define NR_KEYS 128 +#define MAX_NR_KEYMAPS 256 int dumpkmap_main(int argc, char **argv) { @@ -47,32 +47,21 @@ int dumpkmap_main(int argc, char **argv) int i, j, fd; char flags[MAX_NR_KEYMAPS], magic[] = "bkeymap"; - if (argc>=2 && *argv[1]=='-') { - usage(dumpkmap_usage); - } + if (argc >= 2 && *argv[1] == '-') + bb_show_usage(); - fd = open("/dev/tty0", O_RDWR); - if (fd < 0) { - perror_msg("Error opening /dev/tty0"); - return EXIT_FAILURE; - } + fd = bb_xopen(CURRENT_VC, O_RDWR); write(1, magic, 7); - for (i=0; i < MAX_NR_KEYMAPS; i++) flags[i]=0; - flags[0]=1; - flags[1]=1; - flags[2]=1; - flags[4]=1; - flags[5]=1; - flags[6]=1; - flags[8]=1; - flags[9]=1; - flags[10]=1; - flags[12]=1; - + /* Here we want to set everything to 0 except for indexes: + * [0-2] [4-6] [8-10] [12] */ + memset(flags, 0x00, MAX_NR_KEYMAPS); + memset(flags, 0x01, 13); + flags[3] = flags[7] = flags[11] = 0; + /* dump flags */ - for (i=0; i < MAX_NR_KEYMAPS; i++) write(1,&flags[i],1); + write(1, flags, MAX_NR_KEYMAPS); for (i = 0; i < MAX_NR_KEYMAPS; i++) { if (flags[i] == 1) { @@ -80,13 +69,13 @@ int dumpkmap_main(int argc, char **argv) ke.kb_index = j; ke.kb_table = i; if (ioctl(fd, KDGKBENT, &ke) < 0) { - - error_msg("ioctl returned: %s, %s, %s, %xqq", strerror(errno),(char *)&ke.kb_index,(char *)&ke.kb_table,(int)&ke.kb_value); - } - else { - write(1,(void*)&ke.kb_value,2); - } - + bb_perror_msg("ioctl failed with %s, %s, %p", + (char *)&ke.kb_index, + (char *)&ke.kb_table, + &ke.kb_value); + } else { + write(1, (void*)&ke.kb_value, 2); + } } } }