summaryrefslogtreecommitdiffstats
path: root/apps/language.c
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 /apps/language.c
parent95e596c3403de250c717c303128b4078e8a205fc (diff)
downloadrockbox-9fbf346368cea28f7f60a0edc1d493037e7c3e19.tar.gz
rockbox-9fbf346368cea28f7f60a0edc1d493037e7c3e19.tar.bz2
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/language.c')
-rw-r--r--apps/language.c31
1 files changed, 15 insertions, 16 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 @@
#define HEADER_SIZE 4
static unsigned char language_buffer[MAX_LANGUAGE_SIZE];
-
-void lang_init(void)
-{
- int i;
- unsigned char *ptr = (unsigned char *) language_builtin;
-
- for (i = 0; i < LANG_LAST_INDEX_IN_ARRAY; i++) {
- language_strings[i] = ptr;
- ptr += strlen((char *)ptr) + 1; /* advance pointer to next string */
- }
-}
-
static unsigned char lang_options = 0;
-int lang_is_rtl(void)
+void lang_init(const unsigned char *builtin, unsigned char **dest, int count)
{
- return (lang_options & LANGUAGE_FLAG_RTL) != 0;
+ while(count--) {
+ *dest++ = (unsigned char *)builtin;
+ /* advance pointer to next string */
+ builtin += strlen((char *)builtin) + 1;
+ }
}
int lang_load(const char *filename)
@@ -79,7 +71,9 @@ int lang_load(const char *filename)
read(fd, language_buffer, MAX_LANGUAGE_SIZE);
unsigned char *ptr = language_buffer;
int id;
- lang_init(); /* initialize with builtin */
+ /* initialize with builtin */
+ lang_init(language_builtin, language_strings,
+ LANG_LAST_INDEX_IN_ARRAY);
while(fsize>3) {
id = (ptr[0]<<8) | ptr[1]; /* get two-byte id */
@@ -113,7 +107,7 @@ int lang_load(const char *filename)
return retcode;
}
-int lang_english_to_id(const char* english)
+int lang_english_to_id(const char *english)
{
int i;
unsigned char *ptr = (unsigned char *) language_builtin;
@@ -125,3 +119,8 @@ int lang_english_to_id(const char* english)
}
return -1;
}
+
+int lang_is_rtl(void)
+{
+ return (lang_options & LANGUAGE_FLAG_RTL) != 0;
+}