1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2026-04-03 12:43:32 +02:00

Fix util.makeDTD.

Accidentally reverted in the appropriately threatening commit 7ee5792
This commit is contained in:
Doug Kearns
2015-06-09 00:15:41 +10:00
parent 51fffeb2d6
commit b541195188

View File

@@ -972,14 +972,24 @@ var Util = Module("Util", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakReference]),
* for *obj*. * for *obj*.
*/ */
makeDTD: function makeDTD(obj) { makeDTD: function makeDTD(obj) {
let map = { "'": "&apos;", '"': "&quot;", "%": "&#x25;", "&": "&amp;", "<": "&lt;", ">": "&gt;" }; let map = {
"'": "&apos;", '"': "&quot;", "%": "&#x25;",
"&": "&amp;", "<": "&lt;", ">": "&gt;"
};
return iter(obj) function escape(val) {
.map(([k, v]) => ["<!ENTITY ", k, " '", String.replace(v == null ? "null" : typeof v == "xml" ? v.toXMLString() : v, let isDOM = DOM.isJSONXML(val);
typeof v == "xml" ? /['%]/g : /['"%&<>]/g, return String.replace(val == null ? "null" :
m => map[m]), isDOM ? DOM.toXML(val)
"'>"].join("")) : val,
.join("\n"); isDOM ? /['%]/g
: /['"%&<>]/g,
m => map[m]);
}
return iter(obj).map(([k, v]) =>
["<!ENTITY ", k, " '", escape(v), "'>"].join(""))
.join("\n");
}, },
/** /**