aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorBurt P <pburt0@gmail.com>2017-07-17 16:12:54 -0500
committerLeandro Pereira <leandro@hardinfo.org>2017-07-19 07:20:40 -0700
commitec70103197da13839869cd73da8b5af54f5a8212 (patch)
tree38da28d08c5b8ff44b82d6681c3a6bbaf5d291c4 /modules
parent861b1e8c1fa0fde18ce34f964e024c1cd0c10891 (diff)
device tree: complete hardinfo_clean_value() html escaping
Signed-off-by: Burt P <pburt0@gmail.com>
Diffstat (limited to 'modules')
-rw-r--r--modules/devices/devicetree.c20
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("&amp;", vl);
g_strfreev(vl);
+
+ vl = g_strsplit(clean, "<", -1);
+ tmp = g_strjoinv("&lt;", vl);
+ g_strfreev(vl);
+ g_free(clean);
+ clean = tmp;
+
+ vl = g_strsplit(clean, ">", -1);
+ tmp = g_strjoinv("&gt;", vl);
+ g_strfreev(vl);
+ g_free(clean);
+ clean = tmp;
+
if (replacing)
g_free((gpointer)v);
return clean;