Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaria Volvenkova <d.volvenkova@corp.mail.ru>2017-03-29 17:08:01 +0300
committerDaria Volvenkova <d.volvenkova@corp.mail.ru>2017-03-30 15:08:44 +0300
commit0f1fb3c9f81e3d0844613f145b995f9497f9437d (patch)
tree9c61cea2cf3cb73dabe5c8530c31b0a7bd3497d9 /indexer/feature_utils.cpp
parent965d71afc32981da4205b7b3189771acb0764e3a (diff)
Review fixes.
Diffstat (limited to 'indexer/feature_utils.cpp')
-rw-r--r--indexer/feature_utils.cpp33
1 files changed, 14 insertions, 19 deletions
diff --git a/indexer/feature_utils.cpp b/indexer/feature_utils.cpp
index 6cc905e586..235811225a 100644
--- a/indexer/feature_utils.cpp
+++ b/indexer/feature_utils.cpp
@@ -37,22 +37,18 @@ bool GetTransliteratedName(feature::RegionData const & regionData, StringUtf8Mul
string srcName;
for (auto const code : mwmLangCodes)
- {
- if (src.GetString(code, srcName))
- {
- out = Transliteration::GetInstance().Transliterate(srcName, code);
- if (!out.empty())
- return true;
- }
- }
+ if (src.GetString(code, srcName) && Transliteration::Instance().Transliterate(srcName, code, out))
+ return true;
+
+ // If default name is available, interpret it as a name for the first mwm language.
if (!mwmLangCodes.empty() && src.GetString(StringUtf8Multilang::kDefaultCode, srcName))
- out = Transliteration::GetInstance().Transliterate(srcName, mwmLangCodes[0]);
- return !out.empty();
+ return Transliteration::Instance().Transliterate(srcName, mwmLangCodes[0], out);
+
+ return false;
}
bool GetBestName(StringUtf8Multilang const & src, vector<int8_t> const & priorityList, string & out)
{
- out.clear();
auto bestIndex = priorityList.size();
auto const findAndSet = [](vector<int8_t> const & langs, int8_t const code, string const & name,
@@ -72,7 +68,6 @@ bool GetBestName(StringUtf8Multilang const & src, vector<int8_t> const & priorit
return false;
findAndSet(priorityList, code, name, bestIndex, out);
-
return true;
});
@@ -83,7 +78,7 @@ bool GetBestName(StringUtf8Multilang const & src, vector<int8_t> const & priorit
out = out.substr(0, out.find_first_of(','));
}
- return !out.empty();
+ return bestIndex < priorityList.size();
}
} // namespace
@@ -236,11 +231,12 @@ void GetPreferredNames(RegionData const & regionData, StringUtf8Multilang const
if (src.IsEmpty())
return;
- if (!GetBestName(src, {deviceLang, StrUtf8::kInternationalCode, StrUtf8::kEnglishCode}, primary) &&
- allowTranslit)
- {
+ vector<int8_t> const primaryCodes = {deviceLang,
+ StrUtf8::kInternationalCode,
+ StrUtf8::kEnglishCode};
+
+ if (!GetBestName(src, primaryCodes, primary) && allowTranslit)
GetTransliteratedName(regionData, src, primary);
- }
vector<int8_t> secondaryCodes = {StrUtf8::kDefaultCode,
StrUtf8::kInternationalCode};
@@ -276,7 +272,7 @@ void GetReadableName(RegionData const & regionData, StringUtf8Multilang const &
codes = {deviceLang, StrUtf8::kInternationalCode, StrUtf8::kEnglishCode};
if (GetBestName(src, codes, out))
- return;
+ return;
if (allowTranslit && GetTransliteratedName(regionData, src, out))
return;
@@ -290,5 +286,4 @@ void GetReadableName(RegionData const & regionData, StringUtf8Multilang const &
GetMwmLangName(regionData, src, out);
}
-
} // namespace feature