From 5b7d39f8e166288b999f469925710e891a50a1b1 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Fri, 26 Jun 2020 10:18:49 +0200 Subject: [PATCH] docs: fix escaping XML in "tools/generate-docs-nm-settings-docs-gir.py" The gtk-doc text that the tool receives is not XML, it's a plain text. When setting the plain text as XML attribute, we need to properly escape it. The previous XML escape code was naive, and didn't cover for a plain ampersand. (cherry picked from commit 1641cc1d03941e543da716bc68ff059c5a984f37) --- tools/generate-docs-nm-settings-docs-gir.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/tools/generate-docs-nm-settings-docs-gir.py b/tools/generate-docs-nm-settings-docs-gir.py index 0eb0da9785..ebda99560a 100755 --- a/tools/generate-docs-nm-settings-docs-gir.py +++ b/tools/generate-docs-nm-settings-docs-gir.py @@ -8,6 +8,7 @@ from __future__ import print_function import os import gi +import xml.sax.saxutils as saxutils gi.require_version("GIRepository", "2.0") from gi.repository import GIRepository @@ -179,8 +180,8 @@ def settings_sort_key(x): return (x_prefix != "setting_connection", x_prefix) -def escape(val): - return str(val).replace('"', """) +def xml_quoteattr(val): + return saxutils.quoteattr(str(val)) def usage(): @@ -275,11 +276,17 @@ for settingxml in settings: default_value_as_xml = "" if default_value is not None: - default_value_as_xml = ' default="%s"' % (escape(default_value)) + default_value_as_xml = " default=%s" % (xml_quoteattr(default_value)) outfile.write( - ' \n' - % (prop, prop_upper, value_type, default_value_as_xml, escape(value_desc)) + ' \n' + % ( + prop, + prop_upper, + value_type, + default_value_as_xml, + xml_quoteattr(value_desc), + ) ) outfile.write(" \n")