| 
353 | 353 |      * This code is an unmodified version of the code written by Marco de Wit  | 
354 | 354 |      * and was found at http://stackoverflow.com/a/18514751/745719  | 
355 | 355 |      */  | 
356 |  | -    var levenshtein = (function() {  | 
357 |  | -        var row2 = [];  | 
358 |  | -        return function(s1, s2) {  | 
359 |  | -            if (s1 === s2) {  | 
360 |  | -                return 0;  | 
 | 356 | +    var levenshtein_row2 = [];  | 
 | 357 | +    function levenshtein(s1, s2) {  | 
 | 358 | +        if (s1 === s2) {  | 
 | 359 | +            return 0;  | 
 | 360 | +        }  | 
 | 361 | +        var s1_len = s1.length, s2_len = s2.length;  | 
 | 362 | +        if (s1_len && s2_len) {  | 
 | 363 | +            var i1 = 0, i2 = 0, a, b, c, c2, row = levenshtein_row2;  | 
 | 364 | +            while (i1 < s1_len) {  | 
 | 365 | +                row[i1] = ++i1;  | 
361 | 366 |             }  | 
362 |  | -            var s1_len = s1.length, s2_len = s2.length;  | 
363 |  | -            if (s1_len && s2_len) {  | 
364 |  | -                var i1 = 0, i2 = 0, a, b, c, c2, row = row2;  | 
365 |  | -                while (i1 < s1_len) {  | 
366 |  | -                    row[i1] = ++i1;  | 
367 |  | -                }  | 
368 |  | -                while (i2 < s2_len) {  | 
369 |  | -                    c2 = s2.charCodeAt(i2);  | 
370 |  | -                    a = i2;  | 
371 |  | -                    ++i2;  | 
372 |  | -                    b = i2;  | 
373 |  | -                    for (i1 = 0; i1 < s1_len; ++i1) {  | 
374 |  | -                        c = a + (s1.charCodeAt(i1) !== c2 ? 1 : 0);  | 
375 |  | -                        a = row[i1];  | 
376 |  | -                        b = b < a ? (b < c ? b + 1 : c) : (a < c ? a + 1 : c);  | 
377 |  | -                        row[i1] = b;  | 
378 |  | -                    }  | 
 | 367 | +            while (i2 < s2_len) {  | 
 | 368 | +                c2 = s2.charCodeAt(i2);  | 
 | 369 | +                a = i2;  | 
 | 370 | +                ++i2;  | 
 | 371 | +                b = i2;  | 
 | 372 | +                for (i1 = 0; i1 < s1_len; ++i1) {  | 
 | 373 | +                    c = a + (s1.charCodeAt(i1) !== c2 ? 1 : 0);  | 
 | 374 | +                    a = row[i1];  | 
 | 375 | +                    b = b < a ? (b < c ? b + 1 : c) : (a < c ? a + 1 : c);  | 
 | 376 | +                    row[i1] = b;  | 
379 | 377 |                 }  | 
380 |  | -                return b;  | 
381 | 378 |             }  | 
382 |  | -            return s1_len + s2_len;  | 
383 |  | -        };  | 
384 |  | -    })();  | 
 | 379 | +            return b;  | 
 | 380 | +        }  | 
 | 381 | +        return s1_len + s2_len;  | 
 | 382 | +    }  | 
385 | 383 | 
 
  | 
386 | 384 |     function initSearch(rawSearchIndex) {  | 
387 | 385 |         var currentResults, index, searchIndex;  | 
 | 
400 | 398 |         /**  | 
401 | 399 |          * Executes the query and builds an index of results  | 
402 | 400 |          * @param  {[Object]} query     [The user query]  | 
403 |  | -         * @param  {[type]} max         [The maximum results returned]  | 
404 | 401 |          * @param  {[type]} searchWords [The list of search words to query  | 
405 | 402 |          *                               against]  | 
406 | 403 |          * @return {[type]}             [A search index of results]  | 
407 | 404 |          */  | 
408 |  | -        function execQuery(query, max, searchWords) {  | 
 | 405 | +        function execQuery(query, searchWords) {  | 
 | 406 | +            function itemTypeFromName(typename) {  | 
 | 407 | +                for (var i = 0; i < itemTypes.length; ++i) {  | 
 | 408 | +                    if (itemTypes[i] === typename) {  | 
 | 409 | +                        return i;  | 
 | 410 | +                    }  | 
 | 411 | +                }  | 
 | 412 | +                return -1;  | 
 | 413 | +            }  | 
 | 414 | + | 
409 | 415 |             var valLower = query.query.toLowerCase(),  | 
410 | 416 |                 val = valLower,  | 
411 | 417 |                 typeFilter = itemTypeFromName(query.type),  | 
 | 
1021 | 1027 |             return true;  | 
1022 | 1028 |         }  | 
1023 | 1029 | 
 
  | 
1024 |  | -        function getQuery() {  | 
1025 |  | -            var matches, type, query, raw =  | 
1026 |  | -                document.getElementsByClassName('search-input')[0].value;  | 
 | 1030 | +        function getQuery(raw) {  | 
 | 1031 | +            var matches, type, query;  | 
1027 | 1032 |             query = raw;  | 
1028 | 1033 | 
 
  | 
1029 | 1034 |             matches = query.match(/^(fn|mod|struct|enum|trait|type|const|macro)\s*:\s*/i);  | 
 | 
1227 | 1232 |         }  | 
1228 | 1233 | 
 
  | 
1229 | 1234 |         function showResults(results) {  | 
1230 |  | -            var output, query = getQuery();  | 
 | 1235 | +            var output, query = getQuery(document.getElementsByClassName('search-input')[0].value);  | 
1231 | 1236 | 
 
  | 
1232 | 1237 |             currentResults = query.id;  | 
1233 | 1238 |             output = '<h1>Results for ' + escape(query.query) +  | 
 | 
1271 | 1276 |                 resultIndex;  | 
1272 | 1277 |             var params = getQueryStringParams();  | 
1273 | 1278 | 
 
  | 
1274 |  | -            query = getQuery();  | 
 | 1279 | +            query = getQuery(document.getElementsByClassName('search-input')[0].value);  | 
1275 | 1280 |             if (e) {  | 
1276 | 1281 |                 e.preventDefault();  | 
1277 | 1282 |             }  | 
 | 
1293 | 1298 |                 }  | 
1294 | 1299 |             }  | 
1295 | 1300 | 
 
  | 
1296 |  | -            results = execQuery(query, 20000, index);  | 
 | 1301 | +            results = execQuery(query, index);  | 
1297 | 1302 |             showResults(results);  | 
1298 | 1303 |         }  | 
1299 | 1304 | 
 
  | 
1300 |  | -        function itemTypeFromName(typename) {  | 
1301 |  | -            for (var i = 0; i < itemTypes.length; ++i) {  | 
1302 |  | -                if (itemTypes[i] === typename) {  | 
1303 |  | -                    return i;  | 
1304 |  | -                }  | 
1305 |  | -            }  | 
1306 |  | -            return -1;  | 
1307 |  | -        }  | 
1308 |  | - | 
1309 | 1305 |         function buildIndex(rawSearchIndex) {  | 
1310 | 1306 |             searchIndex = [];  | 
1311 | 1307 |             var searchWords = [];  | 
 | 
0 commit comments