diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/language.c | 13 | ||||
-rw-r--r-- | apps/language.h | 3 | ||||
-rw-r--r-- | apps/main.c | 2 |
3 files changed, 18 insertions, 0 deletions
diff --git a/apps/language.c b/apps/language.c index 2b9b6ff30b..847100e7da 100644 --- a/apps/language.c +++ b/apps/language.c | |||
@@ -25,9 +25,21 @@ extern int printf(const char *format, ...); | |||
25 | #include "language.h" | 25 | #include "language.h" |
26 | #include "lang.h" | 26 | #include "lang.h" |
27 | #include "debug.h" | 27 | #include "debug.h" |
28 | #include "string.h" | ||
28 | 29 | ||
29 | static unsigned char language_buffer[MAX_LANGUAGE_SIZE]; | 30 | static unsigned char language_buffer[MAX_LANGUAGE_SIZE]; |
30 | 31 | ||
32 | void lang_init(void) | ||
33 | { | ||
34 | int i; | ||
35 | unsigned char *ptr = (unsigned char *) language_builtin; | ||
36 | |||
37 | for (i = 0; i < LANG_LAST_INDEX_IN_ARRAY; i++) { | ||
38 | language_strings[i] = ptr; | ||
39 | ptr += strlen(ptr) + 1; /* advance pointer to next string */ | ||
40 | } | ||
41 | } | ||
42 | |||
31 | int lang_load(const char *filename) | 43 | int lang_load(const char *filename) |
32 | { | 44 | { |
33 | int filesize; | 45 | int filesize; |
@@ -39,6 +51,7 @@ int lang_load(const char *filename) | |||
39 | if(filesize != MAX_LANGUAGE_SIZE) { | 51 | if(filesize != MAX_LANGUAGE_SIZE) { |
40 | if((language_buffer[0] == LANGUAGE_COOKIE) && | 52 | if((language_buffer[0] == LANGUAGE_COOKIE) && |
41 | (language_buffer[1] == LANGUAGE_VERSION)) { | 53 | (language_buffer[1] == LANGUAGE_VERSION)) { |
54 | lang_init(); /* initialize with builtin */ | ||
42 | unsigned char *ptr=&language_buffer[2]; | 55 | unsigned char *ptr=&language_buffer[2]; |
43 | int id; | 56 | int id; |
44 | filesize-=2; | 57 | filesize-=2; |
diff --git a/apps/language.h b/apps/language.h index 62974459a5..80242962ea 100644 --- a/apps/language.h +++ b/apps/language.h | |||
@@ -24,5 +24,8 @@ | |||
24 | #define LANGUAGE_COOKIE 0x1a | 24 | #define LANGUAGE_COOKIE 0x1a |
25 | #define LANGUAGE_VERSION 0x02 | 25 | #define LANGUAGE_VERSION 0x02 |
26 | 26 | ||
27 | /* Initialize language array with the builtin strings */ | ||
28 | void lang_init(void); | ||
29 | |||
27 | /* load a given language file */ | 30 | /* load a given language file */ |
28 | int lang_load(const char *filename); | 31 | int lang_load(const char *filename); |
diff --git a/apps/main.c b/apps/main.c index cc270ba136..ef8ca7bea7 100644 --- a/apps/main.c +++ b/apps/main.c | |||
@@ -126,6 +126,7 @@ void init(void) | |||
126 | lcd_init(); | 126 | lcd_init(); |
127 | font_init(); | 127 | font_init(); |
128 | show_logo(); | 128 | show_logo(); |
129 | lang_init(); | ||
129 | settings_reset(); | 130 | settings_reset(); |
130 | settings_calc_config_sector(); | 131 | settings_calc_config_sector(); |
131 | settings_load(SETTINGS_ALL); | 132 | settings_load(SETTINGS_ALL); |
@@ -171,6 +172,7 @@ void init(void) | |||
171 | 172 | ||
172 | font_init(); | 173 | font_init(); |
173 | show_logo(); | 174 | show_logo(); |
175 | lang_init(); | ||
174 | 176 | ||
175 | set_irq_level(0); | 177 | set_irq_level(0); |
176 | #ifdef DEBUG | 178 | #ifdef DEBUG |