mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2026-04-03 08:03:31 +02:00
Fix util.makeDTD.
Accidentally reverted in the appropriately threatening commit 7ee5792
This commit is contained in:
@@ -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 = { "'": "'", '"': """, "%": "%", "&": "&", "<": "<", ">": ">" };
|
let map = {
|
||||||
|
"'": "'", '"': """, "%": "%",
|
||||||
|
"&": "&", "<": "<", ">": ">"
|
||||||
|
};
|
||||||
|
|
||||||
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");
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user