Merge branch 'master' into sim-target-tree
[kugel-rb.git] / tools / lngdump.c
blobf304fc85212630b04e0a7ec533177cb5a1363260
1 #include <stdio.h>
2 #include <sys/stat.h>
3 #include <fcntl.h>
5 #define MAX_LANGUAGE_SIZE 20000
7 static char language_buffer[MAX_LANGUAGE_SIZE];
9 int lang_load(const char *filename)
11 int fsize;
12 int fd = open(filename, O_RDONLY);
13 int retcode=0;
14 unsigned char lang_header[3];
15 if(fd == -1)
16 return 1;
17 if(3 == read(fd, lang_header, 3)) {
18 unsigned char *ptr = language_buffer;
19 int id;
20 printf("%02x %02x %02x\n",
21 lang_header[0], lang_header[1], lang_header[2]);
23 fsize = read(fd, language_buffer, MAX_LANGUAGE_SIZE);
25 while(fsize>3) {
26 id = (ptr[0]<<8) | ptr[1]; /* get two-byte id */
27 ptr+=2; /* pass the id */
28 if(id < 2000) {
29 printf("%03d %s\n", id, ptr);
31 while(*ptr) { /* pass the string */
32 fsize--;
33 ptr++;
35 fsize-=3; /* the id and the terminating zero */
36 ptr++; /* pass the terminating zero-byte */
39 close(fd);
40 return retcode;
43 int main(int argc, char **argv)
45 if(argc < 2) {
46 printf("Usage: lngdump <lng file>\n");
47 return 2;
49 lang_load(argv[1]);