1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2026-01-07 22:54:12 +01:00

Provide util.regexpSource to avoid escaping slash when not necessary.

This commit is contained in:
Štěpán Němec
2010-12-06 03:54:22 +01:00
parent b765c5e96c
commit a219601931
3 changed files with 11 additions and 3 deletions

View File

@@ -86,7 +86,7 @@ const AutoCommands = Module("autocommands", {
+
template.map(items, function (item)
<tr>
<td>&#xa0;{item.pattern.source}</td>
<td>&#xa0;{util.regexpSource(item.pattern)}</td>
<td>{item.command}</td>
</tr>))
}
@@ -114,7 +114,7 @@ const AutoCommands = Module("autocommands", {
for (let [, autoCmd] in Iterator(autoCmds)) {
if (autoCmd.pattern.test(url) ^ !autoCmd.pattern.result) {
if (!lastPattern || lastPattern.source != autoCmd.pattern.source)
dactyl.echomsg("Executing " + event + " Auto commands for " + autoCmd.pattern.source.quote(), 8);
dactyl.echomsg("Executing " + event + " Auto commands for " + util.regexpSource(autoCmd.pattern).quote(), 8);
lastPattern = autoCmd.pattern;
dactyl.echomsg("autocommand " + autoCmd.command, 9);

View File

@@ -391,7 +391,7 @@ const Option = Class("Option", {
re.toString = function () Option.unparseRegexp(this);
return re;
},
unparseRegexp: function (re) re.bang + Option.quote(re.source.replace(/\\(.)/g, function (m, n1) n1 == "/" ? n1 : m), /^!|:/) +
unparseRegexp: function (re) re.bang + Option.quote(util.regexpSource(re), /^!|:/) +
(typeof re.result === "boolean" ? "" : ":" + Option.quote(re.result)),
getKey: {

View File

@@ -836,6 +836,14 @@ const Util = Module("Util", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakReference])
return RegExp(expr, flags);
},
/**
* Given a RegExp, returns its source in the form showable to the user.
*
* @param {RegExp} re The regexp showable source of which is to be returned.
* @returns {string}
*/
regexpSource: function regexpSource(re) re.source.replace(/\\(.)/g, function (m0, m1) m1 === "/" ? "/" : m0),
maxErrors: 15,
errors: Class.memoize(function () []),
reportError: function (error) {