diff options
Diffstat (limited to 'busybox/console-tools/dumpkmap.c')
-rw-r--r-- | busybox/console-tools/dumpkmap.c | 43 |
1 files changed, 18 insertions, 25 deletions
diff --git a/busybox/console-tools/dumpkmap.c b/busybox/console-tools/dumpkmap.c index 6085a44..5b5b296 100644 --- a/busybox/console-tools/dumpkmap.c +++ b/busybox/console-tools/dumpkmap.c @@ -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 <linux/keyboard.h> */ -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,28 +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]=='-') { + if (argc >= 2 && *argv[1] == '-') bb_show_usage(); - } - fd=bb_xopen(CURRENT_VC, O_RDWR); + 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) { @@ -76,13 +69,13 @@ int dumpkmap_main(int argc, char **argv) ke.kb_index = j; ke.kb_table = i; if (ioctl(fd, KDGKBENT, &ke) < 0) { - - bb_error_msg("ioctl returned: %m, %s, %s, %xqq", (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); + } } } } |