shared: use NMStrBuf for implementing nm_utils_str_utf8safe_unescape()
This commit is contained in:
@@ -2217,7 +2217,7 @@ _str_buf_append_c_escape_octal (NMStrBuf *strbuf,
|
|||||||
gconstpointer
|
gconstpointer
|
||||||
nm_utils_buf_utf8safe_unescape (const char *str, gsize *out_len, gpointer *to_free)
|
nm_utils_buf_utf8safe_unescape (const char *str, gsize *out_len, gpointer *to_free)
|
||||||
{
|
{
|
||||||
GString *gstr;
|
NMStrBuf strbuf;
|
||||||
gsize len;
|
gsize len;
|
||||||
const char *s;
|
const char *s;
|
||||||
|
|
||||||
@@ -2239,9 +2239,9 @@ nm_utils_buf_utf8safe_unescape (const char *str, gsize *out_len, gpointer *to_fr
|
|||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
gstr = g_string_new_len (NULL, len);
|
nm_str_buf_init (&strbuf, len, FALSE);
|
||||||
|
|
||||||
g_string_append_len (gstr, str, s - str);
|
nm_str_buf_append_len (&strbuf, str, s - str);
|
||||||
str = s;
|
str = s;
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
@@ -2288,21 +2288,20 @@ nm_utils_buf_utf8safe_unescape (const char *str, gsize *out_len, gpointer *to_fr
|
|||||||
str++;
|
str++;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_string_append_c (gstr, ch);
|
nm_str_buf_append_c (&strbuf, ch);
|
||||||
|
|
||||||
s = strchr (str, '\\');
|
s = strchr (str, '\\');
|
||||||
if (!s) {
|
if (!s) {
|
||||||
g_string_append (gstr, str);
|
nm_str_buf_append (&strbuf, str);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_string_append_len (gstr, str, s - str);
|
nm_str_buf_append_len (&strbuf, str, s - str);
|
||||||
str = s;
|
str = s;
|
||||||
}
|
}
|
||||||
|
|
||||||
*out_len = gstr->len;
|
return (*to_free = nm_str_buf_finalize (&strbuf,
|
||||||
*to_free = gstr->str;
|
out_len));
|
||||||
return g_string_free (gstr, FALSE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user