summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Ross <midgey@rockbox.org>2009-10-17 06:07:50 +0000
committerTom Ross <midgey@rockbox.org>2009-10-17 06:07:50 +0000
commit9fbf346368cea28f7f60a0edc1d493037e7c3e19 (patch)
tree5fbb2f5e1faacd78360fbe34e58f162ad67d6c4b
parent95e596c3403de250c717c303128b4078e8a205fc (diff)
downloadrockbox-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
-rw-r--r--apps/language.c31
-rw-r--r--apps/language.h4
-rw-r--r--apps/main.c4
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
45static unsigned char language_buffer[MAX_LANGUAGE_SIZE]; 45static unsigned char language_buffer[MAX_LANGUAGE_SIZE];
46
47void 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
58static unsigned char lang_options = 0; 46static unsigned char lang_options = 0;
59 47
60int lang_is_rtl(void) 48void 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
65int lang_load(const char *filename) 57int 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
116int lang_english_to_id(const char* english) 110int 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
123int 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 */
25void lang_init(void); 25void 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 */
28int lang_load(const char *filename); 28int 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 */
31int lang_english_to_id(const char* english); 31int 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 */
34int lang_is_rtl(void); 34int 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();