diff options
Diffstat (limited to 'intern/locale')
-rw-r--r-- | intern/locale/CMakeLists.txt | 6 | ||||
-rw-r--r-- | intern/locale/msgfmt.cc | 8 |
2 files changed, 13 insertions, 1 deletions
diff --git a/intern/locale/CMakeLists.txt b/intern/locale/CMakeLists.txt index 5d933f326f7..6896702fcbf 100644 --- a/intern/locale/CMakeLists.txt +++ b/intern/locale/CMakeLists.txt @@ -63,6 +63,12 @@ blender_add_lib(bf_intern_locale "${SRC}" "${INC}" "${INC_SYS}") # ----------------------------------------------------------------------------- # Build msgfmt executable + +if(CMAKE_COMPILER_IS_GNUCC) + # workaroud ld.gold linker bug + string(REPLACE "-fuse-ld=gold" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") +endif() + set(MSFFMT_SRC msgfmt.cc ) diff --git a/intern/locale/msgfmt.cc b/intern/locale/msgfmt.cc index 17720adfa48..4779450bd1b 100644 --- a/intern/locale/msgfmt.cc +++ b/intern/locale/msgfmt.cc @@ -228,7 +228,7 @@ void make(const char *input_file_name, } // Record a fuzzy mark. if (starts_with(l, "#,") && l.find("fuzzy") != std::string::npos) { - fuzzy = 1; + fuzzy = true; } // Skip comments if (l[0] == '#') { @@ -316,6 +316,12 @@ void make(const char *input_file_name, // Skip empty lines. l = trim(l); if (l.empty()) { + if (section == SECTION_STR) { + add(msgctxt, msgid, msgstr, fuzzy); + msgctxt = msgid = msgstr = ""; + section = SECTION_NONE; + fuzzy = false; + } continue; } l = unescape(l); |