diff options
author | Tom Ross <midgey@rockbox.org> | 2009-10-17 06:07:50 +0000 |
---|---|---|
committer | Tom Ross <midgey@rockbox.org> | 2009-10-17 06:07:50 +0000 |
commit | 9fbf346368cea28f7f60a0edc1d493037e7c3e19 (patch) | |
tree | 5fbb2f5e1faacd78360fbe34e58f162ad67d6c4b /apps | |
parent | 95e596c3403de250c717c303128b4078e8a205fc (diff) | |
download | rockbox-9fbf346368cea28f7f60a0edc1d493037e7c3e19.tar.gz rockbox-9fbf346368cea28f7f60a0edc1d493037e7c3e19.zip |
Change lang_init() to take a source, destination, and count. Needed for translatable plugins. Minor stylist changes as well.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23221 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r-- | apps/language.c | 31 | ||||
-rw-r--r-- | apps/language.h | 4 | ||||
-rw-r--r-- | apps/main.c | 4 |
3 files changed, 19 insertions, 20 deletions
diff --git a/apps/language.c b/apps/language.c index cdcfbe19b2..fe9ad5e97d 100644 --- a/apps/language.c +++ b/apps/language.c | |||
@@ -43,23 +43,15 @@ | |||
43 | #define HEADER_SIZE 4 | 43 | #define HEADER_SIZE 4 |
44 | 44 | ||
45 | static unsigned char language_buffer[MAX_LANGUAGE_SIZE]; | 45 | static unsigned char language_buffer[MAX_LANGUAGE_SIZE]; |
46 | |||
47 | void lang_init(void) | ||
48 | { | ||
49 | int i; | ||
50 | unsigned char *ptr = (unsigned char *) language_builtin; | ||
51 | |||
52 | for (i = 0; i < LANG_LAST_INDEX_IN_ARRAY; i++) { | ||
53 | language_strings[i] = ptr; | ||
54 | ptr += strlen((char *)ptr) + 1; /* advance pointer to next string */ | ||
55 | } | ||
56 | } | ||
57 | |||
58 | static unsigned char lang_options = 0; | 46 | static unsigned char lang_options = 0; |
59 | 47 | ||
60 | int lang_is_rtl(void) | 48 | void lang_init(const unsigned char *builtin, unsigned char **dest, int count) |
61 | { | 49 | { |
62 | return (lang_options & LANGUAGE_FLAG_RTL) != 0; | 50 | while(count--) { |
51 | *dest++ = (unsigned char *)builtin; | ||
52 | /* advance pointer to next string */ | ||
53 | builtin += strlen((char *)builtin) + 1; | ||
54 | } | ||
63 | } | 55 | } |
64 | 56 | ||
65 | int lang_load(const char *filename) | 57 | int lang_load(const char *filename) |
@@ -79,7 +71,9 @@ int lang_load(const char *filename) | |||
79 | read(fd, language_buffer, MAX_LANGUAGE_SIZE); | 71 | read(fd, language_buffer, MAX_LANGUAGE_SIZE); |
80 | unsigned char *ptr = language_buffer; | 72 | unsigned char *ptr = language_buffer; |
81 | int id; | 73 | int id; |
82 | lang_init(); /* initialize with builtin */ | 74 | /* initialize with builtin */ |
75 | lang_init(language_builtin, language_strings, | ||
76 | LANG_LAST_INDEX_IN_ARRAY); | ||
83 | 77 | ||
84 | while(fsize>3) { | 78 | while(fsize>3) { |
85 | id = (ptr[0]<<8) | ptr[1]; /* get two-byte id */ | 79 | id = (ptr[0]<<8) | ptr[1]; /* get two-byte id */ |
@@ -113,7 +107,7 @@ int lang_load(const char *filename) | |||
113 | return retcode; | 107 | return retcode; |
114 | } | 108 | } |
115 | 109 | ||
116 | int lang_english_to_id(const char* english) | 110 | int lang_english_to_id(const char *english) |
117 | { | 111 | { |
118 | int i; | 112 | int i; |
119 | unsigned char *ptr = (unsigned char *) language_builtin; | 113 | unsigned char *ptr = (unsigned char *) language_builtin; |
@@ -125,3 +119,8 @@ int lang_english_to_id(const char* english) | |||
125 | } | 119 | } |
126 | return -1; | 120 | return -1; |
127 | } | 121 | } |
122 | |||
123 | int lang_is_rtl(void) | ||
124 | { | ||
125 | return (lang_options & LANGUAGE_FLAG_RTL) != 0; | ||
126 | } | ||
diff --git a/apps/language.h b/apps/language.h index c2a1b70e18..4cfe2b22ce 100644 --- a/apps/language.h +++ b/apps/language.h | |||
@@ -22,13 +22,13 @@ | |||
22 | ****************************************************************************/ | 22 | ****************************************************************************/ |
23 | 23 | ||
24 | /* Initialize language array with the builtin strings */ | 24 | /* Initialize language array with the builtin strings */ |
25 | void lang_init(void); | 25 | void lang_init(const unsigned char *builtin, unsigned char **dest, int count); |
26 | 26 | ||
27 | /* load a given language file */ | 27 | /* load a given language file */ |
28 | int lang_load(const char *filename); | 28 | int lang_load(const char *filename); |
29 | 29 | ||
30 | /* get the ID of an english string so it can be localised */ | 30 | /* get the ID of an english string so it can be localised */ |
31 | int lang_english_to_id(const char* english); | 31 | int lang_english_to_id(const char *english); |
32 | 32 | ||
33 | /* returns whether the loaded language is a right-to-left language */ | 33 | /* returns whether the loaded language is a right-to-left language */ |
34 | int lang_is_rtl(void); | 34 | int lang_is_rtl(void); |
diff --git a/apps/main.c b/apps/main.c index f48dd2d0a0..ca0cded351 100644 --- a/apps/main.c +++ b/apps/main.c | |||
@@ -312,7 +312,7 @@ static void init(void) | |||
312 | button_init(); | 312 | button_init(); |
313 | backlight_init(); | 313 | backlight_init(); |
314 | sim_tasks_init(); | 314 | sim_tasks_init(); |
315 | lang_init(); | 315 | lang_init(language_builtin, language_strings, LANG_LAST_INDEX_IN_ARRAY); |
316 | #ifdef DEBUG | 316 | #ifdef DEBUG |
317 | debug_init(); | 317 | debug_init(); |
318 | #endif | 318 | #endif |
@@ -403,7 +403,7 @@ static void init(void) | |||
403 | font_init(); | 403 | font_init(); |
404 | 404 | ||
405 | show_logo(); | 405 | show_logo(); |
406 | lang_init(); | 406 | lang_init(language_builtin, language_strings, LANG_LAST_INDEX_IN_ARRAY); |
407 | 407 | ||
408 | #ifdef DEBUG | 408 | #ifdef DEBUG |
409 | debug_init(); | 409 | debug_init(); |