From 223428d1ebd13ddc96b7599db18d756efa532228 Mon Sep 17 00:00:00 2001 From: Kato Kazuyoshi Date: Fri, 1 Apr 2011 18:57:36 +0000 Subject: On Scaladoc, we should escape meta characters b... On Scaladoc, we should escape meta characters before compile regexp. No review. --- .../scala/tools/nsc/doc/html/resource/lib/index.js | 25 ++++++++++++---------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'src/compiler') diff --git a/src/compiler/scala/tools/nsc/doc/html/resource/lib/index.js b/src/compiler/scala/tools/nsc/doc/html/resource/lib/index.js index 2d66d00b60..2aea2bedf8 100644 --- a/src/compiler/scala/tools/nsc/doc/html/resource/lib/index.js +++ b/src/compiler/scala/tools/nsc/doc/html/resource/lib/index.js @@ -227,25 +227,28 @@ function configureTextFilter() { }); } -// Filters all focused templates and packages. This function should be made less-blocking. -// @param query The string of the query -function textFilter() { - scheduler.clear("filter"); +function compilePattern(query) { + var escaped = query.replace(/([\.\*\+\?\|\(\)\[\]\\])/g, '\\$1'); - $('#tpl').html(''); - - var query = $("#textfilter input").attr("value") || ''; - - var queryRegExp; if (query.toLowerCase() != query) { // Regexp that matches CamelCase subbits: "BiSe" is // "[a-z]*Bi[a-z]*Se" and matches "BitSet", "ABitSet", ... - queryRegExp = new RegExp(query.replace(/([A-Z])/g,"[a-z]*$1")); + return new RegExp(escaped.replace(/([A-Z])/g,"[a-z]*$1")); } else { // if query is all lower case make a normal case insensitive search - queryRegExp = new RegExp(query, "i"); + return new RegExp(escaped, "i"); } +} +// Filters all focused templates and packages. This function should be made less-blocking. +// @param query The string of the query +function textFilter() { + scheduler.clear("filter"); + + $('#tpl').html(''); + + var query = $("#textfilter input").attr("value") || ''; + var queryRegExp = compilePattern(query); var index = 0; -- cgit v1.2.3