diff options
author | Dimitri van Heesch <dimitri@stack.nl> | 2013-09-15 18:11:08 (GMT) |
---|---|---|
committer | Dimitri van Heesch <dimitri@stack.nl> | 2013-09-15 18:11:08 (GMT) |
commit | 6538fdcaa6be2532f8182f9faa9509127c611861 (patch) | |
tree | 231c85293db47d87a67d17ee961b843b282176f0 /src/search.js | |
parent | e193c54033dac487edcf25bbff5467330ede68d0 (diff) | |
download | Doxygen-6538fdcaa6be2532f8182f9faa9509127c611861.zip Doxygen-6538fdcaa6be2532f8182f9faa9509127c611861.tar.gz Doxygen-6538fdcaa6be2532f8182f9faa9509127c611861.tar.bz2 |
Bug 705910 - Indexing and searching cannot treat non ASCII identifiers
Diffstat (limited to 'src/search.js')
-rw-r--r-- | src/search.js | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/search.js b/src/search.js index 3ed3f90..10cee88 100644 --- a/src/search.js +++ b/src/search.js @@ -5,7 +5,7 @@ function convertToId(search) { var c = search.charAt(i); var cn = c.charCodeAt(0); - if (c.match(/[a-z0-9]/)) + if (c.match(/[a-z0-9\u0080-\uFFFF]/)) { result+=c; } @@ -310,22 +310,20 @@ function SearchBox(name, resultsPath, inFrame, label) var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); var code = searchValue.toLowerCase().charCodeAt(0); - var hexCode; - if (code<16) + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair { - hexCode="0"+code.toString(16); - } - else - { - hexCode=code.toString(16); + idxChar = searchValue.substr(0, 2); } var resultsPage; var resultsPageWithSearch; var hasResultsPage; - if (indexSectionsWithContent[this.searchIndex].charAt(code) == '1') + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) { + var hexCode=idx.toString(16); resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; resultsPageWithSearch = resultsPage+'?'+escape(searchValue); hasResultsPage = true; |