aboutsummaryrefslogtreecommitdiffstats
path: root/wsutil/str_util.c
diff options
context:
space:
mode:
authorStig Bjørlykke <stig@bjorlykke.org>2018-04-27 15:29:32 +0200
committerAnders Broman <a.broman58@gmail.com>2018-04-28 06:19:48 +0000
commit3924c6e544387af7ecd2b6316f1396d857156408 (patch)
tree21072024895ff81be96e5eaa65f23422dc915d58 /wsutil/str_util.c
parentb5fc9857c724c5fef08487ce7311c81cdd6368a3 (diff)
lwm2mtlv: Handle String data type as UTF-8
Display element value as bytes if value is not a valid UTF-8 string. Add a new utility function isprint_utf8_string(). Change-Id: I211d5ed423b53a9fd15eb260bbc6298b0b8f46a0 Reviewed-on: https://code.wireshark.org/review/27178 Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'wsutil/str_util.c')
-rw-r--r--wsutil/str_util.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/wsutil/str_util.c b/wsutil/str_util.c
index 65c36d6b15..eb76412a50 100644
--- a/wsutil/str_util.c
+++ b/wsutil/str_util.c
@@ -80,6 +80,25 @@ isprint_string(const gchar *str)
return TRUE;
}
+/* Check if an entire UTF-8 string is printable. */
+gboolean
+isprint_utf8_string(const gchar *str, guint length)
+{
+ const char *c;
+
+ if (!g_utf8_validate (str, length, NULL)) {
+ return FALSE;
+ }
+
+ for (c = str; *c; c = g_utf8_next_char(c)) {
+ if (!g_unichar_isprint(g_utf8_get_char(c))) {
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+
/* Check if an entire string is digits. */
gboolean
isdigit_string(guchar *str)