diff options
| -rw-r--r-- | data/export/fff.mo (renamed from data/export/English.mo) | 0 | ||||
| -rw-r--r-- | data/export/meme.mo | bin | 0 -> 176 bytes | |||
| -rw-r--r-- | data/translations/Dutch.mo | 1 | ||||
| -rw-r--r-- | data/translations/English.mo | 1 | ||||
| -rw-r--r-- | data/translations/German.mo | 1 | ||||
| -rw-r--r-- | src/linux/platform.c | 3 | ||||
| -rw-r--r-- | src/save.c | 15 | ||||
| -rw-r--r-- | src/windows/platform.c | 3 |
8 files changed, 14 insertions, 10 deletions
diff --git a/data/export/English.mo b/data/export/fff.mo index 7d5042c..7d5042c 100644 --- a/data/export/English.mo +++ b/data/export/fff.mo diff --git a/data/export/meme.mo b/data/export/meme.mo Binary files differnew file mode 100644 index 0000000..374a999 --- /dev/null +++ b/data/export/meme.mo diff --git a/data/translations/Dutch.mo b/data/translations/Dutch.mo deleted file mode 100644 index 7d5042c..0000000 --- a/data/translations/Dutch.mo +++ /dev/null @@ -1 +0,0 @@ -Þ•
\ No newline at end of file diff --git a/data/translations/English.mo b/data/translations/English.mo deleted file mode 100644 index 7d5042c..0000000 --- a/data/translations/English.mo +++ /dev/null @@ -1 +0,0 @@ -Þ•
\ No newline at end of file diff --git a/data/translations/German.mo b/data/translations/German.mo deleted file mode 100644 index 7d5042c..0000000 --- a/data/translations/German.mo +++ /dev/null @@ -1 +0,0 @@ -Þ•
\ No newline at end of file diff --git a/src/linux/platform.c b/src/linux/platform.c index a4d85cf..140715b 100644 --- a/src/linux/platform.c +++ b/src/linux/platform.c @@ -196,7 +196,8 @@ bool platform_write_file_content(char *path, const char *mode, char *buffer, s32 } else { - fprintf(file, "%s", buffer); + fwrite(buffer, 1, len, file); // TODO(Aldrik): is this correct? + //fprintf(file, "%s", buffer); } //done: @@ -6,14 +6,16 @@ void start_new_project(); -void write_mo_file(char *buffer, s32 buffer_size, s32 language_id) +s32 write_mo_file(char *buffer, s32 buffer_size, s32 language_id) { s32 identifier_table_size = current_project->terms.length * 8; s32 translation_table_size = current_project->terms.length * 8; + s32 size_written = 0; + mo_header header; header.magic_number = 0x950412de; - header.file_format_revision = 0; + header.file_format_revision = 1; header.number_of_strings = current_project->terms.length; header.identifier_table_offset = 0x40; // keep empty bytes (0x2-0x4) for format changes header.translation_table_offset = header.identifier_table_offset + identifier_table_size; @@ -34,7 +36,6 @@ void write_mo_file(char *buffer, s32 buffer_size, s32 language_id) memcpy(buffer+current_data_write_offset, t->name, new_identifier_entry.length); current_data_write_offset += new_identifier_entry.length+1; - identifier_table[i] = new_identifier_entry; } @@ -57,13 +58,17 @@ void write_mo_file(char *buffer, s32 buffer_size, s32 language_id) memcpy(buffer+current_data_write_offset, tr->value, new_translation_entry.length); current_data_write_offset += new_translation_entry.length+1; + break; } } translation_table[i] = new_translation_entry; } + size_written = current_data_write_offset; + memcpy(buffer, &header, sizeof(mo_header)); + return size_written; } void save_project_to_folder(char *path_buf) @@ -77,7 +82,7 @@ void save_project_to_folder(char *path_buf) char *buffer = mem_alloc(size); memset(buffer, 0, size); - write_mo_file(buffer, size, lang->id); + s32 size_written = write_mo_file(buffer, size, lang->id); char complete_path_buf[MAX_INPUT_LENGTH]; #ifdef OS_WIN @@ -87,7 +92,7 @@ void save_project_to_folder(char *path_buf) sprintf(complete_path_buf, "%s/%s.mo", path_buf, lang->name); #endif - platform_write_file_content(complete_path_buf, "wb", buffer, size); + platform_write_file_content(complete_path_buf, "wb", buffer, size_written); mem_free(buffer); } } diff --git a/src/windows/platform.c b/src/windows/platform.c index 12c9065..24fd6f6 100644 --- a/src/windows/platform.c +++ b/src/windows/platform.c @@ -854,7 +854,8 @@ bool platform_write_file_content(char *path, const char *mode, char *buffer, s32 } else { - fprintf(file, buffer); + fwrite(buffer, 1, len, file); + //fprintf(file, buffer); } //done: |
