This file is indexed.

/usr/share/doc/ruby-literati-doc/html/js/quicksearch.js is in ruby-literati-doc 0.0.4~git.20130318.3b3ea30-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
/**
 *
 * JQuery QuickSearch - Hook up a form field to hide non-matching elements.
 * $Id: quicksearch.js 53 2009-01-07 02:52:03Z deveiant $
 *
 * Author: Michael Granger <mgranger@laika.com>
 *
 */
jQuery.fn.quicksearch = function( target, searchElems, options ) {
	// console.debug( "Quicksearch fn" );

	var settings = {
		delay: 250,
		clearButton: false,
		highlightMatches: false,
		focusOnLoad: false,
		noSearchResultsIndicator: null
	};
	if ( options ) $.extend( settings, options );

	return jQuery(this).each( function() {
		// console.debug( "Creating a new quicksearch on %o for %o", this, searchElems );
		new jQuery.quicksearch( this, searchElems, settings );
	});
};


jQuery.quicksearch = function( searchBox, searchElems, settings ) {
	var timeout;
	var boxdiv = $(searchBox).parents('div').eq(0);

	function init() {
		setupKeyEventHandlers();
		focusOnLoad();
	};

	function setupKeyEventHandlers() {
		// console.debug( "Hooking up the 'keypress' event to %o", searchBox );
		$(searchBox).
			unbind( 'keyup' ).
			keyup( function(e) { return onSearchKey( e.keyCode ); });
		$(searchBox).
			unbind( 'keypress' ).
			keypress( function(e) {
				switch( e.which ) {
					// Execute the search on Enter, Tab, or Newline
					case 9:
					case 13:
					case 10:
						clearTimeout( timeout );
						e.preventDefault();
						doQuickSearch();
						break;

					// Allow backspace
					case 8:
						return true;
						break;

					// Only allow valid search characters
					default:
						return validQSChar( e.charCode );
				}
			});
	};

	function focusOnLoad() {
		if ( !settings.focusOnLoad ) return false;
		$(searchBox).focus();
	};

	function onSearchKey ( code ) {
		clearTimeout( timeout );
		// console.debug( "...scheduling search." );
		timeout = setTimeout( doQuickSearch, settings.delay );
	};

	function validQSChar( code ) {
		var c = String.fromCharCode( code );
		return (
			(c == ':') ||
			(c >= 'a' && c <= 'z') ||
			(c >= 'A' && c <= 'Z')
		  );
	};

	function doQuickSearch() {
		var searchText = searchBox.value;
		var pat = new RegExp( searchText, "im" );
		var shownCount = 0;

		if ( settings.noSearchResultsIndicator ) {
			$('#' + settings.noSearchResultsIndicator).hide();
		}

		// All elements start out hidden
		$(searchElems).each( function(index) {
			var str = $(this).text();

			if ( pat.test(str) ) {
				shownCount += 1;
				$(this).fadeIn();
			} else {
				$(this).hide();
			}
		});

		if ( shownCount == 0 && settings.noSearchResultsIndicator ) {
			$('#' + settings.noSearchResultsIndicator).slideDown();
		}
	};

	init();
};