mirror of
https://git.jami.net/savoirfairelinux/jami-daemon.git
synced 2025-08-12 22:09:25 +08:00
utf8_utils: use string_view
Change-Id: Ib939740608d112626ccce0228726e758b07d22a3
This commit is contained in:
@ -109,14 +109,13 @@ parseDisplayName(const pjsip_name_addr* sip_name_addr)
|
||||
if (not sip_name_addr->display.ptr or not sip_name_addr->display.slen)
|
||||
return {};
|
||||
|
||||
std::string displayName {sip_name_addr->display.ptr,
|
||||
static_cast<size_t>(sip_name_addr->display.slen)};
|
||||
auto displayName = as_view(sip_name_addr->display);
|
||||
|
||||
// Filter out invalid UTF-8 characters to avoid getting kicked from D-Bus
|
||||
if (not utf8_validate(displayName))
|
||||
return utf8_make_valid(displayName);
|
||||
|
||||
return displayName;
|
||||
return std::string(displayName);
|
||||
}
|
||||
|
||||
std::string
|
||||
|
@ -237,21 +237,19 @@ utf8_validate_c_str(const char* str, ssize_t max_len, const char** end)
|
||||
}
|
||||
|
||||
bool
|
||||
utf8_validate(const std::string& str)
|
||||
utf8_validate(std::string_view str)
|
||||
{
|
||||
const char* p;
|
||||
|
||||
p = fast_validate(str.c_str());
|
||||
const char* p = fast_validate_len(str.data(), str.size());
|
||||
|
||||
return (*p == '\0');
|
||||
}
|
||||
|
||||
std::string
|
||||
utf8_make_valid(const std::string& name)
|
||||
utf8_make_valid(std::string_view name)
|
||||
{
|
||||
ssize_t remaining_bytes = name.size();
|
||||
ssize_t valid_bytes;
|
||||
const char* remainder = name.c_str();
|
||||
const char* remainder = name.data();
|
||||
const char* invalid;
|
||||
char* str = NULL;
|
||||
char* pos;
|
||||
@ -289,7 +287,7 @@ utf8_make_valid(const std::string& name)
|
||||
pos += remaining_bytes;
|
||||
|
||||
std::string answer(str, pos - str);
|
||||
assert(utf8_validate_c_str(answer.c_str(), -1, NULL));
|
||||
assert(utf8_validate(answer));
|
||||
|
||||
delete[] str;
|
||||
|
||||
|
@ -20,8 +20,7 @@
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#ifndef H_UTF8_UTILS
|
||||
#define H_UTF8_UTILS
|
||||
#pragma once
|
||||
|
||||
#include <cstdlib>
|
||||
#include <string>
|
||||
@ -41,7 +40,7 @@ namespace jami {
|
||||
* Returns: true if the text was valid UTF-8
|
||||
*/
|
||||
|
||||
bool utf8_validate(const std::string& str);
|
||||
bool utf8_validate(std::string_view str);
|
||||
|
||||
/**
|
||||
* utf8_make_valid:
|
||||
@ -53,8 +52,6 @@ bool utf8_validate(const std::string& str);
|
||||
*
|
||||
* Returns: a valid utf8 string.
|
||||
*/
|
||||
std::string utf8_make_valid(const std::string& name);
|
||||
std::string utf8_make_valid(std::string_view str);
|
||||
|
||||
} // namespace jami
|
||||
|
||||
#endif // H_UTF8_UTILS
|
||||
|
Reference in New Issue
Block a user