diff --git a/android/jni/com/mapswithme/maps/editor/Editor.cpp b/android/jni/com/mapswithme/maps/editor/Editor.cpp index cca40b2a27..a3d6badefd 100644 --- a/android/jni/com/mapswithme/maps/editor/Editor.cpp +++ b/android/jni/com/mapswithme/maps/editor/Editor.cpp @@ -8,7 +8,7 @@ #include "indexer/cuisines.hpp" #include "indexer/editable_map_object.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "base/assert.hpp" #include "base/logging.hpp" diff --git a/android/jni/com/mapswithme/maps/ugc/UGC.cpp b/android/jni/com/mapswithme/maps/ugc/UGC.cpp index e05b1ba77a..4f4be3944f 100644 --- a/android/jni/com/mapswithme/maps/ugc/UGC.cpp +++ b/android/jni/com/mapswithme/maps/ugc/UGC.cpp @@ -10,7 +10,7 @@ #include "platform/preferred_languages.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "base/logging.hpp" diff --git a/coding/CMakeLists.txt b/coding/CMakeLists.txt index d07ad421f2..c7fbe99724 100644 --- a/coding/CMakeLists.txt +++ b/coding/CMakeLists.txt @@ -54,8 +54,6 @@ set( memory_region.hpp mmap_reader.cpp mmap_reader.hpp - multilang_utf8_string.cpp - multilang_utf8_string.hpp parse_xml.hpp point_coding.cpp point_coding.hpp @@ -71,13 +69,15 @@ set( reader_writer_ops.hpp serdes_binary_header.hpp serdes_json.hpp - simple_dense_coding.cpp - simple_dense_coding.hpp sha1.cpp sha1.hpp + simple_dense_coding.cpp + simple_dense_coding.hpp streams.hpp streams_common.hpp streams_sink.hpp + string_utf8_multilang.cpp + string_utf8_multilang.hpp succinct_mapper.hpp tesselator_decl.hpp text_storage.hpp diff --git a/coding/coding_tests/CMakeLists.txt b/coding/coding_tests/CMakeLists.txt index f8ee6ec16c..86d6ab7cbb 100644 --- a/coding/coding_tests/CMakeLists.txt +++ b/coding/coding_tests/CMakeLists.txt @@ -23,7 +23,6 @@ set( huffman_test.cpp mem_file_reader_test.cpp mem_file_writer_test.cpp - multilang_utf8_string_test.cpp png_decoder_test.cpp point_coding_tests.cpp reader_cache_test.cpp @@ -31,6 +30,7 @@ set( reader_test.hpp reader_writer_ops_test.cpp simple_dense_coding_test.cpp + string_utf8_multilang_tests.cpp succinct_mapper_test.cpp test_polylines.cpp test_polylines.hpp diff --git a/coding/coding_tests/multilang_utf8_string_test.cpp b/coding/coding_tests/string_utf8_multilang_tests.cpp similarity index 92% rename from coding/coding_tests/multilang_utf8_string_test.cpp rename to coding/coding_tests/string_utf8_multilang_tests.cpp index d9c89ee1db..b79a512a1b 100644 --- a/coding/coding_tests/multilang_utf8_string_test.cpp +++ b/coding/coding_tests/string_utf8_multilang_tests.cpp @@ -1,6 +1,6 @@ #include "testing/testing.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "base/control_flow.hpp" @@ -121,11 +121,12 @@ UNIT_TEST(MultilangString_Unique) UNIT_TEST(MultilangString_LangNames) { // It is important to compare the contents of the strings, and not just pointers - TEST_EQUAL(string("Беларуская"), StringUtf8Multilang::GetLangNameByCode(StringUtf8Multilang::GetLangIndex("be")), ()); + TEST_EQUAL(string("Беларуская"), + StringUtf8Multilang::GetLangNameByCode(StringUtf8Multilang::GetLangIndex("be")), ()); auto const & langs = StringUtf8Multilang::GetSupportedLanguages(); - // Using size_t workaround, because our logging/testing macroses do not support passing POD types by value, - // only by reference. And our constant is a constexpr. + // Using size_t workaround, because our logging/testing macroses do not support passing POD types + // by value, only by reference. And our constant is a constexpr. TEST_EQUAL(langs.size(), size_t(StringUtf8Multilang::kMaxSupportedLanguages), ()); auto const international = StringUtf8Multilang::GetLangIndex("int_name"); TEST_EQUAL(langs[international].m_code, string("int_name"), ()); @@ -137,11 +138,11 @@ UNIT_TEST(MultilangString_HasString) s.AddString(0, "xxx"); s.AddString(18, "yyy"); s.AddString(63, "zzz"); - + TEST(s.HasString(0), ()); TEST(s.HasString(18), ()); TEST(s.HasString(63), ()); - + TEST(!s.HasString(1), ()); TEST(!s.HasString(32), ()); } diff --git a/coding/multilang_utf8_string.cpp b/coding/string_utf8_multilang.cpp similarity index 98% rename from coding/multilang_utf8_string.cpp rename to coding/string_utf8_multilang.cpp index 51c5b58357..fb84f41c61 100644 --- a/coding/multilang_utf8_string.cpp +++ b/coding/string_utf8_multilang.cpp @@ -1,4 +1,4 @@ -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "defines.hpp" @@ -202,12 +202,12 @@ bool StringUtf8Multilang::GetString(int8_t lang, string & utf8s) const bool StringUtf8Multilang::HasString(int8_t lang) const { - for(size_t i = 0; i < m_s.size(); i = GetNextIndex(i)) + for (size_t i = 0; i < m_s.size(); i = GetNextIndex(i)) { if ((m_s[i] & 0x3F) == lang) return true; } - + return false; } diff --git a/coding/multilang_utf8_string.hpp b/coding/string_utf8_multilang.hpp similarity index 77% rename from coding/multilang_utf8_string.hpp rename to coding/string_utf8_multilang.hpp index f336dd0f84..ca54fbac82 100644 --- a/coding/multilang_utf8_string.hpp +++ b/coding/string_utf8_multilang.hpp @@ -42,6 +42,24 @@ void ReadString(TSource & src, std::string & s) } } // namespace utils +// A class to store strings in multiple languages. +// May be used e.g. to store several translations of a feature's name. +// +// The coding scheme is as follows: +// * Pairs of the form (|lang|, |s|) are stored. |s| is a string in the UTF-8 +// encoding and |lang| is one of the 64 supported languages (see the list in the cpp file). +// +// * Each pair is represented by a byte encoding the lang followed by the +// UTF-8 bytes of the string. Then, all such representations are concatenated +// into a single std::string. +// The language code is encoded with 6 bits that are prepended with "10", i.e. +// 10xx xxxx. In the UTF-8 encoding that would be a continuation byte, so +// if you start reading the string and such a byte appears out of nowhere in +// a place where a continuation byte is not expected you may be sure +// that the string for the current language has ended and you've reached the +// string for the next language. Note that this breaks the self-synchronization property. +// +// * The order of the stored strings is not specified. Any language may come first. class StringUtf8Multilang { public: diff --git a/coding/transliteration.cpp b/coding/transliteration.cpp index e8e73aa8f3..22f21d2bcf 100644 --- a/coding/transliteration.cpp +++ b/coding/transliteration.cpp @@ -1,5 +1,6 @@ #include "coding/transliteration.hpp" -#include "coding/multilang_utf8_string.hpp" + +#include "coding/string_utf8_multilang.hpp" #include "base/logging.hpp" #include "base/string_utils.hpp" @@ -10,8 +11,6 @@ #include "3party/icu/i18n/unicode/translit.h" #include "3party/icu/i18n/unicode/utrans.h" -#include "std/unique_ptr.hpp" - #include #include @@ -58,7 +57,7 @@ void Transliteration::Init(std::string const & icuDataDir) if (strlen(lang.m_transliteratorId) == 0 || m_transliterators.count(lang.m_transliteratorId) != 0) continue; - m_transliterators.emplace(lang.m_transliteratorId, make_unique()); + m_transliterators.emplace(lang.m_transliteratorId, std::make_unique()); } } diff --git a/coding/transliteration.hpp b/coding/transliteration.hpp index 00fbaa0497..cefe519d82 100644 --- a/coding/transliteration.hpp +++ b/coding/transliteration.hpp @@ -1,6 +1,7 @@ #pragma once #include +#include #include #include #include diff --git a/descriptions/serdes.hpp b/descriptions/serdes.hpp index 2a8bb1e523..f904058b60 100644 --- a/descriptions/serdes.hpp +++ b/descriptions/serdes.hpp @@ -5,7 +5,7 @@ #include "indexer/feature_decl.hpp" #include "coding/dd_vector.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "coding/text_storage.hpp" #include "base/assert.hpp" diff --git a/editor/xml_feature.hpp b/editor/xml_feature.hpp index 0f6c349089..ecc10e90bd 100644 --- a/editor/xml_feature.hpp +++ b/editor/xml_feature.hpp @@ -3,7 +3,7 @@ #include "geometry/mercator.hpp" #include "geometry/point2d.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "base/string_utils.hpp" diff --git a/generator/descriptions_section_builder.hpp b/generator/descriptions_section_builder.hpp index ebe6b221e9..458d5ad1c5 100644 --- a/generator/descriptions_section_builder.hpp +++ b/generator/descriptions_section_builder.hpp @@ -9,7 +9,7 @@ #include "coding/file_container.hpp" #include "coding/file_name_utils.hpp" #include "coding/file_writer.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "base/assert.hpp" #include "base/logging.hpp" diff --git a/generator/dumper.cpp b/generator/dumper.cpp index 57e1dae2ea..9558d314b9 100644 --- a/generator/dumper.cpp +++ b/generator/dumper.cpp @@ -9,7 +9,7 @@ #include "indexer/search_delimiters.hpp" #include "indexer/search_string_utils.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "base/logging.hpp" diff --git a/generator/generator_tests_support/test_feature.cpp b/generator/generator_tests_support/test_feature.cpp index 431651b923..74899a2ae2 100644 --- a/generator/generator_tests_support/test_feature.cpp +++ b/generator/generator_tests_support/test_feature.cpp @@ -13,7 +13,7 @@ #include "indexer/ftypes_matcher.hpp" #include "indexer/mwm_set.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "base/assert.hpp" #include "base/stl_helpers.hpp" diff --git a/generator/regions/region_base.hpp b/generator/regions/region_base.hpp index f97695e4c4..7d885fec9e 100644 --- a/generator/regions/region_base.hpp +++ b/generator/regions/region_base.hpp @@ -5,7 +5,7 @@ #include "geometry/rect2d.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "base/geo_object_id.hpp" diff --git a/generator/ugc_translator.cpp b/generator/ugc_translator.cpp index bd20f17103..6f2906b2fd 100644 --- a/generator/ugc_translator.cpp +++ b/generator/ugc_translator.cpp @@ -4,7 +4,7 @@ #include "ugc/serdes_json.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "base/string_utils.hpp" diff --git a/generator/viator_dataset.cpp b/generator/viator_dataset.cpp index d140af9ac7..36deb8f113 100644 --- a/generator/viator_dataset.cpp +++ b/generator/viator_dataset.cpp @@ -6,7 +6,7 @@ #include "indexer/classificator.hpp" #include "indexer/ftypes_matcher.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "geometry/mercator.hpp" diff --git a/indexer/brands_holder.cpp b/indexer/brands_holder.cpp index 1b9c68fd46..18c8e7d7dd 100644 --- a/indexer/brands_holder.cpp +++ b/indexer/brands_holder.cpp @@ -4,9 +4,9 @@ #include "platform/platform.hpp" -#include "coding/multilang_utf8_string.hpp" #include "coding/reader.hpp" #include "coding/reader_streambuf.hpp" +#include "coding/string_utf8_multilang.hpp" #include "base/logging.hpp" diff --git a/indexer/categories_holder.hpp b/indexer/categories_holder.hpp index e7adbc2874..2f385292df 100644 --- a/indexer/categories_holder.hpp +++ b/indexer/categories_holder.hpp @@ -26,8 +26,9 @@ public: struct Name { std::string m_name; - /// This language/locale code is completely different from our built-in langs in multilang_utf8_string.cpp - /// and is only used for mapping user's input language to our values in categories.txt file + /// This language/locale code is completely different from our built-in langs in + /// string_utf8_multilang.cpp and is only used for mapping user's input language to our values + /// in categories.txt file int8_t m_locale; uint8_t m_prefixLengthToSuggest; }; diff --git a/indexer/editable_map_object.hpp b/indexer/editable_map_object.hpp index 6595615c24..a11624949b 100644 --- a/indexer/editable_map_object.hpp +++ b/indexer/editable_map_object.hpp @@ -8,7 +8,7 @@ #include "geometry/latlon.hpp" #include "geometry/mercator.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include #include diff --git a/indexer/feature_data.hpp b/indexer/feature_data.hpp index 7fecf628b5..8db386ddab 100644 --- a/indexer/feature_data.hpp +++ b/indexer/feature_data.hpp @@ -5,8 +5,8 @@ #include "geometry/point2d.hpp" -#include "coding/multilang_utf8_string.hpp" #include "coding/reader.hpp" +#include "coding/string_utf8_multilang.hpp" #include "coding/value_opt_string.hpp" #include diff --git a/indexer/feature_meta.hpp b/indexer/feature_meta.hpp index b5a6e85102..2890ef7db2 100644 --- a/indexer/feature_meta.hpp +++ b/indexer/feature_meta.hpp @@ -1,7 +1,7 @@ #pragma once -#include "coding/multilang_utf8_string.hpp" #include "coding/reader.hpp" +#include "coding/string_utf8_multilang.hpp" #include #include diff --git a/indexer/feature_utils.cpp b/indexer/feature_utils.cpp index c0d0c0146d..70e8ff7e3d 100644 --- a/indexer/feature_utils.cpp +++ b/indexer/feature_utils.cpp @@ -7,7 +7,7 @@ #include "geometry/point2d.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "coding/transliteration.hpp" #include "base/base.hpp" diff --git a/indexer/indexer_tests/brands_tests.cpp b/indexer/indexer_tests/brands_tests.cpp index b2801495ab..d2b398be1d 100644 --- a/indexer/indexer_tests/brands_tests.cpp +++ b/indexer/indexer_tests/brands_tests.cpp @@ -2,8 +2,8 @@ #include "indexer/brands_holder.hpp" -#include "coding/multilang_utf8_string.hpp" #include "coding/reader.hpp" +#include "coding/string_utf8_multilang.hpp" #include #include diff --git a/indexer/indexer_tests/categories_test.cpp b/indexer/indexer_tests/categories_test.cpp index 0e7d24fbcb..618eca832f 100644 --- a/indexer/indexer_tests/categories_test.cpp +++ b/indexer/indexer_tests/categories_test.cpp @@ -5,8 +5,8 @@ #include "indexer/classificator.hpp" #include "indexer/classificator_loader.hpp" -#include "coding/multilang_utf8_string.hpp" #include "coding/reader.hpp" +#include "coding/string_utf8_multilang.hpp" #include "base/stl_helpers.hpp" #include "base/string_utils.hpp" diff --git a/indexer/map_object.hpp b/indexer/map_object.hpp index f431af2c16..92fba24246 100644 --- a/indexer/map_object.hpp +++ b/indexer/map_object.hpp @@ -8,7 +8,7 @@ #include "geometry/latlon.hpp" #include "geometry/mercator.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "base/stl_helpers.hpp" diff --git a/kml/kml_tests/serdes_tests.cpp b/kml/kml_tests/serdes_tests.cpp index c9bf7240df..6d4265e9c4 100644 --- a/kml/kml_tests/serdes_tests.cpp +++ b/kml/kml_tests/serdes_tests.cpp @@ -9,8 +9,8 @@ #include "coding/file_reader.hpp" #include "coding/file_writer.hpp" #include "coding/hex.hpp" -#include "coding/multilang_utf8_string.hpp" #include "coding/reader.hpp" +#include "coding/string_utf8_multilang.hpp" #include "coding/writer.hpp" #include "base/scope_guard.hpp" diff --git a/kml/pykmlib/bindings.cpp b/kml/pykmlib/bindings.cpp index 9aef61af62..a14cd9cf37 100644 --- a/kml/pykmlib/bindings.cpp +++ b/kml/pykmlib/bindings.cpp @@ -4,7 +4,7 @@ #include "indexer/classificator.hpp" #include "indexer/classificator_loader.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "geometry/latlon.hpp" #include "geometry/mercator.hpp" diff --git a/kml/serdes.cpp b/kml/serdes.cpp index d8c1e5b0a8..9c8f0be2b8 100644 --- a/kml/serdes.cpp +++ b/kml/serdes.cpp @@ -5,7 +5,7 @@ #include "geometry/mercator.hpp" #include "coding/hex.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "base/assert.hpp" #include "base/stl_helpers.hpp" diff --git a/kml/type_utils.cpp b/kml/type_utils.cpp index 4755c0c0fc..be8c0c5b65 100644 --- a/kml/type_utils.cpp +++ b/kml/type_utils.cpp @@ -8,7 +8,7 @@ #include "platform/localization.hpp" #include "platform/preferred_languages.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" namespace kml { diff --git a/local_ads/file_helpers.cpp b/local_ads/file_helpers.cpp index 1bfdb92069..baa8a926fe 100644 --- a/local_ads/file_helpers.cpp +++ b/local_ads/file_helpers.cpp @@ -1,7 +1,7 @@ #include "local_ads/file_helpers.hpp" -#include "coding/multilang_utf8_string.hpp" #include "coding/reader.hpp" +#include "coding/string_utf8_multilang.hpp" #include "coding/write_to_sink.hpp" #include "base/assert.hpp" diff --git a/map/bookmark_manager.cpp b/map/bookmark_manager.cpp index 060b369b1d..f8c8aae8ba 100644 --- a/map/bookmark_manager.cpp +++ b/map/bookmark_manager.cpp @@ -20,8 +20,8 @@ #include "coding/file_writer.hpp" #include "coding/hex.hpp" #include "coding/internal/file_data.hpp" -#include "coding/multilang_utf8_string.hpp" #include "coding/sha1.hpp" +#include "coding/string_utf8_multilang.hpp" #include "coding/zip_creator.hpp" #include "coding/zip_reader.hpp" diff --git a/map/framework.cpp b/map/framework.cpp index 7816218f4f..fd5f77b075 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -75,8 +75,8 @@ #include "coding/endianness.hpp" #include "coding/file_name_utils.hpp" -#include "coding/multilang_utf8_string.hpp" #include "coding/point_coding.hpp" +#include "coding/string_utf8_multilang.hpp" #include "coding/transliteration.hpp" #include "coding/url_encode.hpp" #include "coding/zip_reader.hpp" diff --git a/map/local_ads_manager.cpp b/map/local_ads_manager.cpp index e7da7c4a3f..aefe7ce5cc 100644 --- a/map/local_ads_manager.cpp +++ b/map/local_ads_manager.cpp @@ -21,8 +21,8 @@ #include "platform/settings.hpp" #include "coding/file_name_utils.hpp" -#include "coding/multilang_utf8_string.hpp" #include "coding/point_coding.hpp" +#include "coding/string_utf8_multilang.hpp" #include "coding/url_encode.hpp" #include "base/url_helpers.hpp" diff --git a/map/map_tests/feature_getters_tests.cpp b/map/map_tests/feature_getters_tests.cpp index e69856de2e..4046495d74 100644 --- a/map/map_tests/feature_getters_tests.cpp +++ b/map/map_tests/feature_getters_tests.cpp @@ -6,7 +6,7 @@ #include "platform/local_country_file.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "geometry/mercator.hpp" diff --git a/map/map_tests/transliteration_test.cpp b/map/map_tests/transliteration_test.cpp index 5127783848..44d9ff95f0 100644 --- a/map/map_tests/transliteration_test.cpp +++ b/map/map_tests/transliteration_test.cpp @@ -1,6 +1,6 @@ #include "testing/testing.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "coding/transliteration.hpp" #include "platform/platform.hpp" diff --git a/map/routing_manager.cpp b/map/routing_manager.cpp index 87f8d3fb11..6d907abf6b 100644 --- a/map/routing_manager.cpp +++ b/map/routing_manager.cpp @@ -27,7 +27,7 @@ #include "coding/file_reader.hpp" #include "coding/file_writer.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "platform/country_file.hpp" #include "platform/mwm_traits.hpp" diff --git a/map/taxi_delegate.cpp b/map/taxi_delegate.cpp index b0fecf41ad..7c72223e25 100644 --- a/map/taxi_delegate.cpp +++ b/map/taxi_delegate.cpp @@ -6,7 +6,7 @@ #include "storage/index.hpp" #include "storage/storage.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" TaxiDelegate::TaxiDelegate(storage::Storage const & st, storage::CountryInfoGetter const & ig, search::CityFinder & cf) diff --git a/partners_api/ads_base.cpp b/partners_api/ads_base.cpp index e04a43857e..32e6e57d0d 100644 --- a/partners_api/ads_base.cpp +++ b/partners_api/ads_base.cpp @@ -3,7 +3,7 @@ #include "indexer/classificator.hpp" #include "indexer/feature_data.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include diff --git a/partners_api/locals_api.cpp b/partners_api/locals_api.cpp index f8bce6e258..53726b6904 100644 --- a/partners_api/locals_api.cpp +++ b/partners_api/locals_api.cpp @@ -4,7 +4,7 @@ #include "platform/platform.hpp" #include "platform/preferred_languages.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "coding/url_encode.hpp" #include "base/logging.hpp" diff --git a/partners_api/viator_api.cpp b/partners_api/viator_api.cpp index 26a0d66897..0169c4344a 100644 --- a/partners_api/viator_api.cpp +++ b/partners_api/viator_api.cpp @@ -4,7 +4,7 @@ #include "platform/platform.hpp" #include "platform/preferred_languages.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "coding/url_encode.hpp" #include "base/logging.hpp" diff --git a/platform/preferred_languages.hpp b/platform/preferred_languages.hpp index 679a9eb75f..6f5e8ce876 100644 --- a/platform/preferred_languages.hpp +++ b/platform/preferred_languages.hpp @@ -19,9 +19,9 @@ string GetCurrentTwine(); /// @return Normalized language code for the current user in the form "en", "zh". //@{ -/// Returned languages are normalized to our supported languages in the core, see multilang_utf8_string.cpp -/// and should not be used with any sub-locales like zh-Hans/zh-Hant. -/// Some langs like Danish (da) are not supported in the core too, but used as a locale. +/// Returned languages are normalized to our supported languages in the core, see +/// string_utf8_multilang.cpp and should not be used with any sub-locales like zh-Hans/zh-Hant. Some +/// langs like Danish (da) are not supported in the core too, but used as a locale. string Normalize(string const & lang); string GetCurrentNorm(); //@} diff --git a/routing/bicycle_directions.cpp b/routing/bicycle_directions.cpp index ed5b56eeb6..82a107caaf 100644 --- a/routing/bicycle_directions.cpp +++ b/routing/bicycle_directions.cpp @@ -15,7 +15,7 @@ #include "indexer/ftypes_matcher.hpp" #include "indexer/scales.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "geometry/mercator.hpp" #include "geometry/point2d.hpp" diff --git a/search/bookmarks/data.hpp b/search/bookmarks/data.hpp index 9729cb93b4..08c466f30c 100644 --- a/search/bookmarks/data.hpp +++ b/search/bookmarks/data.hpp @@ -4,7 +4,7 @@ #include "kml/types.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "base/string_utils.hpp" diff --git a/search/geocoder.cpp b/search/geocoder.cpp index 2bfb071a63..a78a35b713 100644 --- a/search/geocoder.cpp +++ b/search/geocoder.cpp @@ -25,7 +25,7 @@ #include "storage/country_info_getter.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "platform/preferred_languages.hpp" diff --git a/search/house_detector.cpp b/search/house_detector.cpp index 86e63537cd..4fcb49970e 100644 --- a/search/house_detector.cpp +++ b/search/house_detector.cpp @@ -9,7 +9,7 @@ #include "platform/platform.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "geometry/angles.hpp" #include "geometry/parametrized_segment.hpp" diff --git a/search/locality_finder.hpp b/search/locality_finder.hpp index 890558912f..9921add41f 100644 --- a/search/locality_finder.hpp +++ b/search/locality_finder.hpp @@ -5,7 +5,7 @@ #include "indexer/mwm_set.hpp" #include "indexer/rank_table.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "geometry/point2d.hpp" #include "geometry/rect2d.hpp" diff --git a/search/processor.cpp b/search/processor.cpp index 73a9122a02..bd767e1528 100644 --- a/search/processor.cpp +++ b/search/processor.cpp @@ -39,8 +39,8 @@ #include "platform/preferred_languages.hpp" #include "coding/compressed_bit_vector.hpp" -#include "coding/multilang_utf8_string.hpp" #include "coding/reader_wrapper.hpp" +#include "coding/string_utf8_multilang.hpp" #include "base/assert.hpp" #include "base/logging.hpp" diff --git a/search/processor.hpp b/search/processor.hpp index ff0f5680da..44b796322d 100644 --- a/search/processor.hpp +++ b/search/processor.hpp @@ -19,7 +19,7 @@ #include "indexer/string_slice.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "geometry/rect2d.hpp" diff --git a/search/query_params.hpp b/search/query_params.hpp index 366d28ae70..3d5c2eeeea 100644 --- a/search/query_params.hpp +++ b/search/query_params.hpp @@ -2,7 +2,7 @@ #include "indexer/scales.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "base/assert.hpp" #include "base/small_set.hpp" diff --git a/search/ranker.cpp b/search/ranker.cpp index 775110e337..79dbf392ba 100644 --- a/search/ranker.cpp +++ b/search/ranker.cpp @@ -19,7 +19,7 @@ #include "platform/preferred_languages.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "base/logging.hpp" #include "base/string_utils.hpp" diff --git a/search/search_integration_tests/search_edited_features_test.cpp b/search/search_integration_tests/search_edited_features_test.cpp index 9e9ca96f59..4f12bf99da 100644 --- a/search/search_integration_tests/search_edited_features_test.cpp +++ b/search/search_integration_tests/search_edited_features_test.cpp @@ -10,7 +10,7 @@ #include "geometry/point2d.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "std/shared_ptr.hpp" diff --git a/search/search_params.cpp b/search/search_params.cpp index 5a3d23f233..3c97e78cf3 100644 --- a/search/search_params.cpp +++ b/search/search_params.cpp @@ -2,7 +2,7 @@ #include "geometry/mercator.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "base/assert.hpp" diff --git a/search/search_quality/assessment_tool/feature_info_dialog.cpp b/search/search_quality/assessment_tool/feature_info_dialog.cpp index 116a419afa..a3e3cad5bb 100644 --- a/search/search_quality/assessment_tool/feature_info_dialog.cpp +++ b/search/search_quality/assessment_tool/feature_info_dialog.cpp @@ -6,7 +6,7 @@ #include "indexer/feature.hpp" #include "indexer/feature_algo.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "geometry/latlon.hpp" diff --git a/search/search_quality/assessment_tool/main_model.cpp b/search/search_quality/assessment_tool/main_model.cpp index 3cf0a7cc59..a05ac13f4a 100644 --- a/search/search_quality/assessment_tool/main_model.cpp +++ b/search/search_quality/assessment_tool/main_model.cpp @@ -11,7 +11,7 @@ #include "geometry/algorithm.hpp" #include "geometry/mercator.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "platform/platform.hpp" diff --git a/search/search_tests/mem_search_index_tests.cpp b/search/search_tests/mem_search_index_tests.cpp index 88d84778be..d4a72be7d1 100644 --- a/search/search_tests/mem_search_index_tests.cpp +++ b/search/search_tests/mem_search_index_tests.cpp @@ -5,7 +5,7 @@ #include "indexer/search_string_utils.hpp" -#include "coding/multilang_utf8_string.hpp" +#include "coding/string_utf8_multilang.hpp" #include "base/stl_helpers.hpp" #include "base/string_utils.hpp" diff --git a/tizen/RunUnitTests/.project b/tizen/RunUnitTests/.project index 2cb162d4be..c1d1267b83 100644 --- a/tizen/RunUnitTests/.project +++ b/tizen/RunUnitTests/.project @@ -486,9 +486,9 @@ PARENT-2-ECLIPSE_HOME/GitHub/omim/coding/coding_tests/mem_file_writer_test.cpp - src/Tests/coding/multilang_utf8_string_test.cpp + src/Tests/coding/string_utf8_multilang_tests.cpp 1 - PARENT-2-ECLIPSE_HOME/GitHub/omim/coding/coding_tests/multilang_utf8_string_test.cpp + PARENT-2-ECLIPSE_HOME/GitHub/omim/coding/coding_tests/string_utf8_multilang_tests.cpp src/Tests/coding/png_decoder_test.cpp diff --git a/tools/python/mwm/mwm.py b/tools/python/mwm/mwm.py index 812b0651e2..4114f5f77b 100644 --- a/tools/python/mwm/mwm.py +++ b/tools/python/mwm/mwm.py @@ -47,7 +47,7 @@ class OsmIdCode: class MWM: - # coding/multilang_utf8_string.cpp + # coding/string_utf8_multilang.cpp languages = ["default", "en", "ja", "fr", "ko_rm", "ar", "de", "int_name", "ru", "sv", "zh", "fi", "be", "ka", "ko", "he", "nl", "ga", "ja_rm", "el", "it", "es", "zh_pinyin", "th", "cy", "sr", "uk", "ca", "hu", diff --git a/xcode/coding/coding.xcodeproj/project.pbxproj b/xcode/coding/coding.xcodeproj/project.pbxproj index cbf34f843e..151519a246 100644 --- a/xcode/coding/coding.xcodeproj/project.pbxproj +++ b/xcode/coding/coding.xcodeproj/project.pbxproj @@ -25,6 +25,9 @@ 395D1A95207BBF63001164A5 /* zlib_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 395D1A91207BBBAC001164A5 /* zlib_test.cpp */; }; 395D1A97207BBF63001164A5 /* text_storage_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 395D1A8D207BBB9E001164A5 /* text_storage_tests.cpp */; }; 395D1A98207BBF63001164A5 /* bwt_coder_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 395D1A8B207BBB95001164A5 /* bwt_coder_tests.cpp */; }; + 3973743121C17EFE0003807A /* string_utf8_multilang.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 3973742F21C17EFE0003807A /* string_utf8_multilang.hpp */; }; + 3973743221C17EFE0003807A /* string_utf8_multilang.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3973743021C17EFE0003807A /* string_utf8_multilang.cpp */; }; + 3973743521C17F1C0003807A /* string_utf8_multilang_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3973743321C17F160003807A /* string_utf8_multilang_tests.cpp */; }; 39B2B97B1FB4692D00AB85A1 /* text_storage.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 39B2B97A1FB4692D00AB85A1 /* text_storage.hpp */; }; 39B2B97D1FB4693500AB85A1 /* bwt_coder.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 39B2B97C1FB4693400AB85A1 /* bwt_coder.hpp */; }; 39B2B97F1FB4693B00AB85A1 /* elias_coder.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 39B2B97E1FB4693B00AB85A1 /* elias_coder.hpp */; }; @@ -81,8 +84,6 @@ 675342AD1A3F588C00A0A8C3 /* matrix_traversal.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 675342571A3F588B00A0A8C3 /* matrix_traversal.hpp */; }; 675342AE1A3F588C00A0A8C3 /* mmap_reader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 675342581A3F588B00A0A8C3 /* mmap_reader.cpp */; }; 675342AF1A3F588C00A0A8C3 /* mmap_reader.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 675342591A3F588B00A0A8C3 /* mmap_reader.hpp */; }; - 675342B01A3F588C00A0A8C3 /* multilang_utf8_string.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6753425A1A3F588B00A0A8C3 /* multilang_utf8_string.cpp */; }; - 675342B11A3F588C00A0A8C3 /* multilang_utf8_string.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 6753425B1A3F588B00A0A8C3 /* multilang_utf8_string.hpp */; }; 675342B21A3F588C00A0A8C3 /* parse_xml.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 6753425C1A3F588B00A0A8C3 /* parse_xml.hpp */; }; 675342B31A3F588C00A0A8C3 /* polymorph_reader.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 6753425D1A3F588B00A0A8C3 /* polymorph_reader.hpp */; }; 675342B41A3F588C00A0A8C3 /* read_write_utils.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 6753425E1A3F588B00A0A8C3 /* read_write_utils.hpp */; }; @@ -131,7 +132,6 @@ 67E8DB631BBC17490053C5BA /* huffman_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 67E8DB181BBC16C70053C5BA /* huffman_test.cpp */; }; 67E8DB641BBC17490053C5BA /* mem_file_reader_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 67E8DB191BBC16C70053C5BA /* mem_file_reader_test.cpp */; }; 67E8DB651BBC17490053C5BA /* mem_file_writer_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 67E8DB1A1BBC16C70053C5BA /* mem_file_writer_test.cpp */; }; - 67E8DB661BBC17490053C5BA /* multilang_utf8_string_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 67E8DB1B1BBC16C70053C5BA /* multilang_utf8_string_test.cpp */; }; 67E8DB671BBC17490053C5BA /* png_decoder_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 67E8DB1C1BBC16C70053C5BA /* png_decoder_test.cpp */; }; 67E8DB681BBC17490053C5BA /* reader_cache_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 67E8DB1D1BBC16C70053C5BA /* reader_cache_test.cpp */; }; 67E8DB691BBC17490053C5BA /* reader_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 67E8DB1E1BBC16C70053C5BA /* reader_test.cpp */; }; @@ -188,6 +188,9 @@ 395D1A8B207BBB95001164A5 /* bwt_coder_tests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = bwt_coder_tests.cpp; sourceTree = ""; }; 395D1A8D207BBB9E001164A5 /* text_storage_tests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = text_storage_tests.cpp; sourceTree = ""; }; 395D1A91207BBBAC001164A5 /* zlib_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = zlib_test.cpp; sourceTree = ""; }; + 3973742F21C17EFE0003807A /* string_utf8_multilang.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = string_utf8_multilang.hpp; sourceTree = ""; }; + 3973743021C17EFE0003807A /* string_utf8_multilang.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = string_utf8_multilang.cpp; sourceTree = ""; }; + 3973743321C17F160003807A /* string_utf8_multilang_tests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = string_utf8_multilang_tests.cpp; sourceTree = ""; }; 39B2B97A1FB4692D00AB85A1 /* text_storage.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = text_storage.hpp; sourceTree = ""; }; 39B2B97C1FB4693400AB85A1 /* bwt_coder.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = bwt_coder.hpp; sourceTree = ""; }; 39B2B97E1FB4693B00AB85A1 /* elias_coder.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = elias_coder.hpp; sourceTree = ""; }; @@ -245,8 +248,6 @@ 675342571A3F588B00A0A8C3 /* matrix_traversal.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = matrix_traversal.hpp; sourceTree = ""; }; 675342581A3F588B00A0A8C3 /* mmap_reader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mmap_reader.cpp; sourceTree = ""; }; 675342591A3F588B00A0A8C3 /* mmap_reader.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = mmap_reader.hpp; sourceTree = ""; }; - 6753425A1A3F588B00A0A8C3 /* multilang_utf8_string.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = multilang_utf8_string.cpp; sourceTree = ""; }; - 6753425B1A3F588B00A0A8C3 /* multilang_utf8_string.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = multilang_utf8_string.hpp; sourceTree = ""; }; 6753425C1A3F588B00A0A8C3 /* parse_xml.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = parse_xml.hpp; sourceTree = ""; }; 6753425D1A3F588B00A0A8C3 /* polymorph_reader.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = polymorph_reader.hpp; sourceTree = ""; }; 6753425E1A3F588B00A0A8C3 /* read_write_utils.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = read_write_utils.hpp; sourceTree = ""; }; @@ -296,7 +297,6 @@ 67E8DB181BBC16C70053C5BA /* huffman_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = huffman_test.cpp; sourceTree = ""; }; 67E8DB191BBC16C70053C5BA /* mem_file_reader_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mem_file_reader_test.cpp; sourceTree = ""; }; 67E8DB1A1BBC16C70053C5BA /* mem_file_writer_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mem_file_writer_test.cpp; sourceTree = ""; }; - 67E8DB1B1BBC16C70053C5BA /* multilang_utf8_string_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = multilang_utf8_string_test.cpp; sourceTree = ""; }; 67E8DB1C1BBC16C70053C5BA /* png_decoder_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = png_decoder_test.cpp; sourceTree = ""; }; 67E8DB1D1BBC16C70053C5BA /* reader_cache_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reader_cache_test.cpp; sourceTree = ""; }; 67E8DB1E1BBC16C70053C5BA /* reader_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reader_test.cpp; sourceTree = ""; }; @@ -360,6 +360,7 @@ 394916901BAC3A5F002A8C4F /* coding_tests */ = { isa = PBXGroup; children = ( + 3973743321C17F160003807A /* string_utf8_multilang_tests.cpp */, 39C3C0BE21A431BF003B4712 /* point_coding_tests.cpp */, 39F376CB207D329F0058E8E0 /* geometry_coding_test.cpp */, 39F376CC207D329F0058E8E0 /* geometry_serialization_test.cpp */, @@ -391,7 +392,6 @@ 67E8DB181BBC16C70053C5BA /* huffman_test.cpp */, 67E8DB191BBC16C70053C5BA /* mem_file_reader_test.cpp */, 67E8DB1A1BBC16C70053C5BA /* mem_file_writer_test.cpp */, - 67E8DB1B1BBC16C70053C5BA /* multilang_utf8_string_test.cpp */, 67E8DB1C1BBC16C70053C5BA /* png_decoder_test.cpp */, 67E8DB1D1BBC16C70053C5BA /* reader_cache_test.cpp */, 67E8DB1E1BBC16C70053C5BA /* reader_test.cpp */, @@ -448,6 +448,8 @@ 6753421D1A3F586300A0A8C3 /* coding */ = { isa = PBXGroup; children = ( + 3973743021C17EFE0003807A /* string_utf8_multilang.cpp */, + 3973742F21C17EFE0003807A /* string_utf8_multilang.hpp */, 39C3C0BB21A43061003B4712 /* point_coding.cpp */, 39C3C0BA21A43060003B4712 /* point_coding.hpp */, 39F376C8207D32820058E8E0 /* tesselator_decl.hpp */, @@ -490,8 +492,6 @@ 39B2B9801FB4694300AB85A1 /* memory_region.hpp */, 675342581A3F588B00A0A8C3 /* mmap_reader.cpp */, 675342591A3F588B00A0A8C3 /* mmap_reader.hpp */, - 6753425A1A3F588B00A0A8C3 /* multilang_utf8_string.cpp */, - 6753425B1A3F588B00A0A8C3 /* multilang_utf8_string.hpp */, 6753425C1A3F588B00A0A8C3 /* parse_xml.hpp */, 6753425D1A3F588B00A0A8C3 /* polymorph_reader.hpp */, 6753425E1A3F588B00A0A8C3 /* read_write_utils.hpp */, @@ -560,6 +560,7 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( + 3973743121C17EFE0003807A /* string_utf8_multilang.hpp in Headers */, 675342C81A3F588C00A0A8C3 /* value_opt_string.hpp in Headers */, 675342CD1A3F588C00A0A8C3 /* varint_vector.hpp in Headers */, 675342B51A3F588C00A0A8C3 /* reader_cache.hpp in Headers */, @@ -620,7 +621,6 @@ 675342D21A3F588C00A0A8C3 /* zip_creator.hpp in Headers */, 3D74EF211F8F55740081202C /* csv_reader.hpp in Headers */, 39B2B97D1FB4693500AB85A1 /* bwt_coder.hpp in Headers */, - 675342B11A3F588C00A0A8C3 /* multilang_utf8_string.hpp in Headers */, 675342D41A3F588C00A0A8C3 /* zip_reader.hpp in Headers */, 675342A41A3F588C00A0A8C3 /* file_writer.hpp in Headers */, 675342C01A3F588C00A0A8C3 /* streams_sink.hpp in Headers */, @@ -732,6 +732,7 @@ 67E8DB6F1BBC17490053C5BA /* url_encode_test.cpp in Sources */, 67E8DB721BBC17490053C5BA /* var_serial_vector_test.cpp in Sources */, 67E8DB5B1BBC17490053C5BA /* dd_vector_test.cpp in Sources */, + 3973743521C17F1C0003807A /* string_utf8_multilang_tests.cpp in Sources */, 3D489BC21D3D21AA0052AA38 /* fixed_bits_ddvector_test.cpp in Sources */, 67E8DB581BBC17490053C5BA /* coder_util_test.cpp in Sources */, 67E8DB601BBC17490053C5BA /* file_sort_test.cpp in Sources */, @@ -742,7 +743,6 @@ 67E8DB651BBC17490053C5BA /* mem_file_writer_test.cpp in Sources */, 67E8DB761BBC17490053C5BA /* zip_creator_test.cpp in Sources */, 395D1A97207BBF63001164A5 /* text_storage_tests.cpp in Sources */, - 67E8DB661BBC17490053C5BA /* multilang_utf8_string_test.cpp in Sources */, 39F376D4207D32B10058E8E0 /* geometry_coding_test.cpp in Sources */, 395D1A95207BBF63001164A5 /* zlib_test.cpp in Sources */, 67E8DB741BBC17490053C5BA /* varint_vector_test.cpp in Sources */, @@ -758,7 +758,6 @@ 347F333A1C4540F0009758CC /* simple_dense_coding.cpp in Sources */, 675342D11A3F588C00A0A8C3 /* zip_creator.cpp in Sources */, 675342B61A3F588C00A0A8C3 /* reader_streambuf.cpp in Sources */, - 675342B01A3F588C00A0A8C3 /* multilang_utf8_string.cpp in Sources */, 675342821A3F588C00A0A8C3 /* base64.cpp in Sources */, 675342D31A3F588C00A0A8C3 /* zip_reader.cpp in Sources */, 4563B062205909290057556D /* sha1.cpp in Sources */, @@ -766,6 +765,7 @@ 3D74EF221F8F55740081202C /* csv_reader.cpp in Sources */, 6753429F1A3F588C00A0A8C3 /* file_reader.cpp in Sources */, 34A129D31DF99E43001B4531 /* zlib.cpp in Sources */, + 3973743221C17EFE0003807A /* string_utf8_multilang.cpp in Sources */, 676818201DC3ABD80094C0AC /* traffic_test.cpp in Sources */, BB537C5F1E8490120074D9D3 /* transliteration.cpp in Sources */, 675342C51A3F588C00A0A8C3 /* uri.cpp in Sources */,