aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/string-utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/string-utils.h')
-rw-r--r--src/string-utils.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/string-utils.h b/src/string-utils.h
index 1b4957f..806140e 100644
--- a/src/string-utils.h
+++ b/src/string-utils.h
@@ -197,6 +197,19 @@ teco_string_rindex(const teco_string_t *str, gchar chr)
const gchar *teco_string_last_occurrence(const teco_string_t *str, const gchar *chars);
+/**
+ * Validate whether string consists exclusively of valid UTF-8, but accept null bytes.
+ * @note there is g_utf8_validate_len() in Glib 2.60
+ */
+static inline gboolean
+teco_string_validate_utf8(const teco_string_t *str)
+{
+ const gchar *p = str->data;
+ while (!g_utf8_validate(p, str->len - (p - str->data), &p) && !*p)
+ p++;
+ return p - str->data == str->len;
+}
+
/** @memberof teco_string_t */
static inline void
teco_string_clear(teco_string_t *str)