diff options
-rw-r--r-- | apps/language.c | 57 |
1 files changed, 28 insertions, 29 deletions
diff --git a/apps/language.c b/apps/language.c index a4b2b0dabc..614a4869d5 100644 --- a/apps/language.c +++ b/apps/language.c @@ -27,44 +27,43 @@ static unsigned char language_buffer[MAX_LANGUAGE_SIZE]; void lang_load(char *filename) { - int filesize; - int fd = open(filename, O_RDONLY); - if(fd == -1) - return; - filesize = read(fd, language_buffer, MAX_LANGUAGE_SIZE); - if(filesize != MAX_LANGUAGE_SIZE) { - if((language_buffer[0] == LANGUAGE_COOKIE) && - (language_buffer[1] == LANGUAGE_VERSION)) { - unsigned char *ptr=&language_buffer[2]; - int id; - filesize-=2; + int filesize; + int fd = open(filename, O_RDONLY); + if(fd == -1) + return; + filesize = read(fd, language_buffer, MAX_LANGUAGE_SIZE); + if(filesize != MAX_LANGUAGE_SIZE) { + if((language_buffer[0] == LANGUAGE_COOKIE) && + (language_buffer[1] == LANGUAGE_VERSION)) { + unsigned char *ptr=&language_buffer[2]; + int id; + filesize-=2; - while(filesize>3) { - id = (ptr[0]<<8) | ptr[1]; - ptr+=2; - language_strings[id] = ptr; - while(*ptr) { - filesize--; - ptr++; + while(filesize>3) { + id = (ptr[0]<<8) | ptr[1]; + ptr+=2; + language_strings[id] = ptr; + while(*ptr) { + filesize--; + ptr++; + } + filesize-=3; + ptr++; /* pass the terminating newline */ + } + } + else { + DEBUGF("Illegal language file\n"); } - filesize-=3; - ptr++; /* pass the terminating newline */ - } - } else { - DEBUGF("Illegal language file\n"); + DEBUGF("Language %s too large: %d\n", filename, filesize); } - } - else { - DEBUGF("Language %s too large: %d\n", filename, filesize); - } - close(fd); + close(fd); } /* ----------------------------------------------------------------- * local variables: * eval: (load-file "../firmware/rockbox-mode.el") - * vim: et sw=4 ts=8 sts=4 tw=78 * end: + * vim: et sw=4 ts=8 sts=4 tw=78 */ |