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 | |
| 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')
| -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 | } |
