diff --git a/libnm/generate-setting-docs.py b/libnm/generate-setting-docs.py
index 7e890074af..483c553ecf 100755
--- a/libnm/generate-setting-docs.py
+++ b/libnm/generate-setting-docs.py
@@ -20,6 +20,8 @@ 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
import argparse, datetime, re, sys
@@ -175,8 +177,8 @@ def settings_sort_key(x):
# always sort NMSettingConnection first
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():
print("Usage: %s --gir FILE --output FILE" % sys.argv[0])
@@ -268,11 +270,11 @@ for settingxml in settings:
raise Exception("%s.%s needs a documentation description" % (setting.props.name, prop))
if default_value is not None:
- outfile.write(" \n" %
- (prop, prop_upper, value_type, escape(default_value), escape(value_desc)))
+ outfile.write(" \n" %
+ (prop, prop_upper, value_type, xml_quoteattr(default_value), xml_quoteattr(value_desc)))
else:
- outfile.write(" \n" %
- (prop, prop_upper, value_type, escape(value_desc)))
+ outfile.write(" \n" %
+ (prop, prop_upper, value_type, xml_quoteattr(value_desc)))
outfile.write(" \n")