diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2013-09-17 14:16:25 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2013-09-17 14:16:25 +0200 |
commit | 32ed30d96b56ea7322218061f09e62feda9948e3 (patch) | |
tree | 79830bf4ddb5252d19026eff4ab8b9fe63412876 /console-tools/dumpkmap.c | |
parent | fbe250db76b409a99457b47486a09b57677d5108 (diff) | |
download | busybox-w32-32ed30d96b56ea7322218061f09e62feda9948e3.tar.gz busybox-w32-32ed30d96b56ea7322218061f09e62feda9948e3.tar.bz2 busybox-w32-32ed30d96b56ea7322218061f09e62feda9948e3.zip |
dumpkmap: code shrink
function old new delta
dumpkmap_main 223 160 -63
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'console-tools/dumpkmap.c')
-rw-r--r-- | console-tools/dumpkmap.c | 37 |
1 files changed, 23 insertions, 14 deletions
diff --git a/console-tools/dumpkmap.c b/console-tools/dumpkmap.c index 6b923d2d4..bf8d690da 100644 --- a/console-tools/dumpkmap.c +++ b/console-tools/dumpkmap.c | |||
@@ -36,47 +36,56 @@ int dumpkmap_main(int argc UNUSED_PARAM, char **argv) | |||
36 | { | 36 | { |
37 | struct kbentry ke; | 37 | struct kbentry ke; |
38 | int i, j, fd; | 38 | int i, j, fd; |
39 | RESERVE_CONFIG_BUFFER(flags, MAX_NR_KEYMAPS); | 39 | #define flags bb_common_bufsiz1 |
40 | 40 | ||
41 | /* When user accidentally runs "dumpkmap FILE" | 41 | /* When user accidentally runs "dumpkmap FILE" |
42 | * instead of "dumpkmap >FILE", we'd dump binary stuff to tty. | 42 | * instead of "dumpkmap >FILE", we'd dump binary stuff to tty. |
43 | * Let's prevent it: */ | 43 | * Let's prevent it: |
44 | */ | ||
44 | if (argv[1]) | 45 | if (argv[1]) |
45 | bb_show_usage(); | 46 | bb_show_usage(); |
46 | /* bb_warn_ignoring_args(argv[1]);*/ | 47 | /* bb_warn_ignoring_args(argv[1]);*/ |
47 | 48 | ||
48 | fd = get_console_fd_or_die(); | 49 | fd = get_console_fd_or_die(); |
49 | 50 | ||
51 | #if 0 | ||
50 | write(STDOUT_FILENO, "bkeymap", 7); | 52 | write(STDOUT_FILENO, "bkeymap", 7); |
51 | |||
52 | /* Here we want to set everything to 0 except for indexes: | 53 | /* Here we want to set everything to 0 except for indexes: |
53 | * [0-2] [4-6] [8-10] [12] */ | 54 | * [0-2] [4-6] [8-10] [12] |
54 | memset(flags, 0x00, MAX_NR_KEYMAPS); | 55 | */ |
56 | /*memset(flags, 0x00, MAX_NR_KEYMAPS); - already is */ | ||
55 | memset(flags, 0x01, 13); | 57 | memset(flags, 0x01, 13); |
56 | flags[3] = flags[7] = flags[11] = 0; | 58 | flags[3] = flags[7] = flags[11] = 0; |
57 | |||
58 | /* dump flags */ | 59 | /* dump flags */ |
59 | write(STDOUT_FILENO, flags, MAX_NR_KEYMAPS); | 60 | write(STDOUT_FILENO, flags, MAX_NR_KEYMAPS); |
61 | #define flags7 flags | ||
62 | #else | ||
63 | /* Same effect */ | ||
64 | /* 0 1 2 3 4 5 6 7 8 9 a b c=12 */ | ||
65 | memcpy(flags, "bkeymap\1\1\1\0\1\1\1\0\1\1\1\0\1", | ||
66 | /* Can use sizeof, or sizeof-1. sizeof is even, using that */ | ||
67 | /****/ sizeof("bkeymap\1\1\1\0\1\1\1\0\1\1\1\0\1") | ||
68 | ); | ||
69 | write(STDOUT_FILENO, flags, 7 + MAX_NR_KEYMAPS); | ||
70 | #define flags7 (flags + 7) | ||
71 | #endif | ||
60 | 72 | ||
61 | for (i = 0; i < MAX_NR_KEYMAPS; i++) { | 73 | for (i = 0; i < 13; i++) { |
62 | if (flags[i] == 1) { | 74 | if (flags7[i]) { |
63 | for (j = 0; j < NR_KEYS; j++) { | 75 | for (j = 0; j < NR_KEYS; j++) { |
64 | ke.kb_index = j; | 76 | ke.kb_index = j; |
65 | ke.kb_table = i; | 77 | ke.kb_table = i; |
66 | if (!ioctl_or_perror(fd, KDGKBENT, &ke, | 78 | if (!ioctl_or_perror(fd, KDGKBENT, &ke, |
67 | "ioctl failed with %s, %s, %p", | 79 | "ioctl(KDGKBENT{%d,%d}) failed", |
68 | (char *)&ke.kb_index, | 80 | j, i) |
69 | (char *)&ke.kb_table, | ||
70 | &ke.kb_value) | ||
71 | ) { | 81 | ) { |
72 | write(STDOUT_FILENO, (void*)&ke.kb_value, 2); | 82 | write(STDOUT_FILENO, &ke.kb_value, 2); |
73 | } | 83 | } |
74 | } | 84 | } |
75 | } | 85 | } |
76 | } | 86 | } |
77 | if (ENABLE_FEATURE_CLEAN_UP) { | 87 | if (ENABLE_FEATURE_CLEAN_UP) { |
78 | close(fd); | 88 | close(fd); |
79 | RELEASE_CONFIG_BUFFER(flags); | ||
80 | } | 89 | } |
81 | return EXIT_SUCCESS; | 90 | return EXIT_SUCCESS; |
82 | } | 91 | } |