diff options
author | Burt P <pburt0@gmail.com> | 2017-07-17 16:12:54 -0500 |
---|---|---|
committer | Leandro Pereira <leandro@hardinfo.org> | 2017-07-19 07:20:40 -0700 |
commit | ec70103197da13839869cd73da8b5af54f5a8212 (patch) | |
tree | 38da28d08c5b8ff44b82d6681c3a6bbaf5d291c4 | |
parent | 861b1e8c1fa0fde18ce34f964e024c1cd0c10891 (diff) |
device tree: complete hardinfo_clean_value() html escaping
Signed-off-by: Burt P <pburt0@gmail.com>
-rw-r--r-- | modules/devices/devicetree.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/modules/devices/devicetree.c b/modules/devices/devicetree.c index e382da45..9aa31b51 100644 --- a/modules/devices/devicetree.c +++ b/modules/devices/devicetree.c @@ -81,12 +81,28 @@ gchar *hardinfo_clean_label(const gchar *v, int replacing) { return clean; } +/* hardinfo uses the values as {ht,x}ml, apparently */ gchar *hardinfo_clean_value(const gchar *v, int replacing) { - gchar *clean; + gchar *clean, *tmp; + gchar **vl; if (v == NULL) return NULL; - gchar **vl = g_strsplit(v, "&", -1); + + vl = g_strsplit(v, "&", -1); clean = g_strjoinv("&", vl); g_strfreev(vl); + + vl = g_strsplit(clean, "<", -1); + tmp = g_strjoinv("<", vl); + g_strfreev(vl); + g_free(clean); + clean = tmp; + + vl = g_strsplit(clean, ">", -1); + tmp = g_strjoinv(">", vl); + g_strfreev(vl); + g_free(clean); + clean = tmp; + if (replacing) g_free((gpointer)v); return clean; |