summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2020-06-26 10:18:49 +0200
committerThomas Haller <thaller@redhat.com>2020-06-26 13:22:04 +0200
commit1641cc1d03941e543da716bc68ff059c5a984f37 (patch)
treece0fe4279900bdcbf33f691baea2c62113a91ca7
parent62747bb07653ab362c33abeae04213de7bde177d (diff)
downloadNetworkManager-1641cc1d03941e543da716bc68ff059c5a984f37.tar.gz
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.
-rwxr-xr-xtools/generate-docs-nm-settings-docs-gir.py17
1 files 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('"', "&quot;")
+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(
- ' <property name="%s" name_upper="%s" type="%s"%s description="%s" />\n'
- % (prop, prop_upper, value_type, default_value_as_xml, escape(value_desc))
+ ' <property name="%s" name_upper="%s" type="%s"%s description=%s />\n'
+ % (
+ prop,
+ prop_upper,
+ value_type,
+ default_value_as_xml,
+ xml_quoteattr(value_desc),
+ )
)
outfile.write(" </setting>\n")