Use g_utf8_make_valid if available for cleaner utf8 handling (#2065)
This commit is contained in:
parent
0c494a9c24
commit
07f1fc60da
|
@ -258,6 +258,9 @@ static void
|
||||||
server_inline (server *serv, char *line, gssize len)
|
server_inline (server *serv, char *line, gssize len)
|
||||||
{
|
{
|
||||||
gsize len_utf8;
|
gsize len_utf8;
|
||||||
|
if (!strcmp (serv->encoding, "UTF-8"))
|
||||||
|
line = text_fixup_invalid_utf8 (line, len, &len_utf8);
|
||||||
|
else
|
||||||
line = text_convert_invalid (line, len, serv->read_converter, unicode_fallback_string, &len_utf8);
|
line = text_convert_invalid (line, len, serv->read_converter, unicode_fallback_string, &len_utf8);
|
||||||
|
|
||||||
fe_add_rawlog (serv, line, len_utf8, FALSE);
|
fe_add_rawlog (serv, line, len_utf8, FALSE);
|
||||||
|
|
|
@ -814,6 +814,16 @@ text_convert_invalid (const gchar* text, gssize len, GIConv converter, const gch
|
||||||
gchar *
|
gchar *
|
||||||
text_fixup_invalid_utf8 (const gchar* text, gssize len, gsize *len_out)
|
text_fixup_invalid_utf8 (const gchar* text, gssize len, gsize *len_out)
|
||||||
{
|
{
|
||||||
|
#if GLIB_CHECK_VERSION (2, 52, 0)
|
||||||
|
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||||
|
gchar *result = g_utf8_make_valid (text, len);
|
||||||
|
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||||
|
if (len_out)
|
||||||
|
{
|
||||||
|
*len_out = strlen (result);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
#else
|
||||||
static GIConv utf8_fixup_converter = NULL;
|
static GIConv utf8_fixup_converter = NULL;
|
||||||
if (utf8_fixup_converter == NULL)
|
if (utf8_fixup_converter == NULL)
|
||||||
{
|
{
|
||||||
|
@ -821,6 +831,7 @@ text_fixup_invalid_utf8 (const gchar* text, gssize len, gsize *len_out)
|
||||||
}
|
}
|
||||||
|
|
||||||
return text_convert_invalid (text, len, utf8_fixup_converter, unicode_fallback_string, len_out);
|
return text_convert_invalid (text, len, utf8_fixup_converter, unicode_fallback_string, len_out);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
Loading…
Reference in New Issue