From 5c7db2788d8aedf4de706b08e1cdc1828cb1c3dd Mon Sep 17 00:00:00 2001 From: Serhii Hadzhilov <71632867+SerhiiGadzhilov@users.noreply.github.com> Date: Thu, 4 Nov 2021 17:48:23 +0200 Subject: [PATCH] SYNERGY-1307 Prevent notifications if language reading fails (#7115) * SYNERGY-1307 Prevent notifications if language reading fails * Update ChangeLog * SYNERGY-1307 Fix code smell --- ChangeLog | 1 + src/lib/client/ServerProxy.cpp | 3 ++- src/lib/synergy/languages/LanguageManager.cpp | 8 +++++++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8201f6332..151ef8bed 100644 --- a/ChangeLog +++ b/ChangeLog @@ -18,6 +18,7 @@ Bug fixes: - #7097 The title "Enterprise" disappeares after clicking on "Preferences" - #7108 Wrong characters on client for unicode - #7114 Fixed problem with reading languages on Linux system +- #7115 Prevent notifications if language reading fails Enhancements: - #7068 Add Synergy restart when settings changed diff --git a/src/lib/client/ServerProxy.cpp b/src/lib/client/ServerProxy.cpp index 74fcc2a4c..864ffd29e 100644 --- a/src/lib/client/ServerProxy.cpp +++ b/src/lib/client/ServerProxy.cpp @@ -35,6 +35,7 @@ #include #include +#include // // ServerProxy @@ -967,7 +968,7 @@ ServerProxy::setServerLanguages() void ServerProxy::setActiveServerLanguage(const String& language) { - if (!language.empty()) { + if (!language.empty() && std::strlen(language.c_str()) > 0) { if(m_serverLanguage != language) { m_isUserNotifiedAboutLanguageSyncError = false; m_serverLanguage = language; diff --git a/src/lib/synergy/languages/LanguageManager.cpp b/src/lib/synergy/languages/LanguageManager.cpp index 6e51cbf12..739f4fb12 100644 --- a/src/lib/synergy/languages/LanguageManager.cpp +++ b/src/lib/synergy/languages/LanguageManager.cpp @@ -89,7 +89,13 @@ String LanguageManager::getSerializedLocalLanguages() const bool LanguageManager::isLanguageInstalled(const String& language) const { - return (std::find(m_localLanguages.begin(), m_localLanguages.end(), language) != m_localLanguages.end()); + bool isInstalled = true; + + if (!m_localLanguages.empty()) { + isInstalled = (std::find(m_localLanguages.begin(), m_localLanguages.end(), language) != m_localLanguages.end()); + } + + return isInstalled; } } //namespace languages