summaryrefslogtreecommitdiff
path: root/console-tools/loadkmap.c
diff options
context:
space:
mode:
authorMatt Kraai <kraai@debian.org>2000-10-25 16:48:15 +0000
committerMatt Kraai <kraai@debian.org>2000-10-25 16:48:15 +0000
commit9133c98a9d5b26fd645d30f70c4cf994aea972e9 (patch)
treeb030ab95457996fb9dd41ab65c81ea7dae82d581 /console-tools/loadkmap.c
parent3180413e7643dcb9ae38a617bf531557f64b3c57 (diff)
downloadbusybox-w32-9133c98a9d5b26fd645d30f70c4cf994aea972e9.tar.gz
busybox-w32-9133c98a9d5b26fd645d30f70c4cf994aea972e9.tar.bz2
busybox-w32-9133c98a9d5b26fd645d30f70c4cf994aea972e9.zip
Cleaned up error handling, TRUE/FALSE usage, and other minor issues.
Diffstat (limited to 'console-tools/loadkmap.c')
-rw-r--r--console-tools/loadkmap.c36
1 files changed, 13 insertions, 23 deletions
diff --git a/console-tools/loadkmap.c b/console-tools/loadkmap.c
index 3f8d726e0..7dfa670f4 100644
--- a/console-tools/loadkmap.c
+++ b/console-tools/loadkmap.c
@@ -26,6 +26,8 @@
26#include <stdio.h> 26#include <stdio.h>
27#include <sys/ioctl.h> 27#include <sys/ioctl.h>
28 28
29#define BINARY_KEYMAP_MAGIC "bkeymap"
30
29/* From <linux/kd.h> */ 31/* From <linux/kd.h> */
30struct kbentry { 32struct kbentry {
31 unsigned char kb_table; 33 unsigned char kb_table;
@@ -43,29 +45,21 @@ int loadkmap_main(int argc, char **argv)
43 struct kbentry ke; 45 struct kbentry ke;
44 u_short *ibuff; 46 u_short *ibuff;
45 int i, j, fd, readsz, pos, ibuffsz = NR_KEYS * sizeof(u_short); 47 int i, j, fd, readsz, pos, ibuffsz = NR_KEYS * sizeof(u_short);
46 char flags[MAX_NR_KEYMAPS], magic[] = "bkeymap", buff[7]; 48 char flags[MAX_NR_KEYMAPS], buff[7];
47 49
48 if (argc>=2 && *argv[1]=='-') { 50 if (argc != 1)
49 usage(loadkmap_usage); 51 usage(loadkmap_usage);
50 }
51 52
52 fd = open("/dev/tty0", O_RDWR); 53 fd = open("/dev/tty0", O_RDWR);
53 if (fd < 0) { 54 if (fd < 0)
54 errorMsg("Error opening /dev/tty0: %s\n", strerror(errno)); 55 fatalPerror("Error opening /dev/tty0");
55 exit(FALSE);
56 }
57 56
58 read(0, buff, 7); 57 read(0, buff, 7);
59 if (0 != strncmp(buff, magic, 7)) { 58 if (0 != strncmp(buff, BINARY_KEYMAP_MAGIC, 7))
60 errorMsg("This is not a valid binary keymap.\n"); 59 fatalError("This is not a valid binary keymap.\n");
61 exit(FALSE);
62 }
63 60
64 if (MAX_NR_KEYMAPS != read(0, flags, MAX_NR_KEYMAPS)) { 61 if (MAX_NR_KEYMAPS != read(0, flags, MAX_NR_KEYMAPS))
65 errorMsg("Error reading keymap flags: %s\n", 62 fatalPerror("Error reading keymap flags");
66 strerror(errno));
67 exit(FALSE);
68 }
69 63
70 ibuff = (u_short *) xmalloc(ibuffsz); 64 ibuff = (u_short *) xmalloc(ibuffsz);
71 65
@@ -73,12 +67,8 @@ int loadkmap_main(int argc, char **argv)
73 if (flags[i] == 1) { 67 if (flags[i] == 1) {
74 pos = 0; 68 pos = 0;
75 while (pos < ibuffsz) { 69 while (pos < ibuffsz) {
76 if ((readsz = read(0, (char *) ibuff + pos, ibuffsz - pos)) 70 if ((readsz = read(0, (char *) ibuff + pos, ibuffsz - pos)) < 0)
77 < 0) { 71 fatalPerror("Error reading keymap");
78 errorMsg("Error reading keymap: %s\n",
79 strerror(errno));
80 exit(FALSE);
81 }
82 pos += readsz; 72 pos += readsz;
83 } 73 }
84 for (j = 0; j < NR_KEYS; j++) { 74 for (j = 0; j < NR_KEYS; j++) {
@@ -92,5 +82,5 @@ int loadkmap_main(int argc, char **argv)
92 /* Don't bother to close files. Exit does that 82 /* Don't bother to close files. Exit does that
93 * automagically, so we can save a few bytes */ 83 * automagically, so we can save a few bytes */
94 /* close(fd); */ 84 /* close(fd); */
95 return(TRUE); 85 return EXIT_SUCCESS;
96} 86}