DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (495129e490bc)

VCS Links

Line Code
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 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
<title>mozilla cross-reference: search help</title>
<link rel='stylesheet' title='' href='style/style.css' type='text/css'>
<body   bgcolor="#ffffff" text="#000000"
        link="#0000EE" vlink="#551a8b" alink="#ff0000">

<table bgcolor="#000000" width="100%" border=0 cellpadding=0 cellspacing=0>
<tr><td><a href="//www.mozilla.org/"><img
 src="//www.mozilla.org/images/mozilla-banner.gif" alt=""
 border=0 width=600 height=58></a></td></td></table>
<table class=desc>
<h1 align=center>search help<br>
<font size=3>
for the<br>
<a href="./"><i>mozilla cross-reference</i></a>

This text is derived from the Glimpse manual page.
For more information on glimpse, see the
<a href="http://webglimpse.net/">Glimpse homepage</a>.

<a name="Patterns"></a><h2>Patterns</h2>
glimpse supports a large variety of patterns, including simple
strings, strings with classes of characters, sets of strings,
wild cards, and regular expressions (see <a href="#Limitations">Limitations</a>).

<p> <h3>Strings</h3>

Strings are any sequence of characters, including the special symbols
`^' for beginning of line and `$' for end of line.  The following
special characters (`$', `^', `*', `[', `^', `|', `(', `)', `!', and
`\' ) as well as the following meta characters special to glimpse (and
agrep): `;', `,', `#', `&gt;', `&lt;', `-', and `.', should be preceded by
`\' if they are to be matched as regular characters.  For example,
\^abc\\\\ corresponds to the string ^abc\\, whereas ^abc corresponds
to the string abc at the beginning of a line.

<p> <h3>Classes of characters</h3>

a list of characters inside [] (in order) corresponds to any character
from the list.  For example, [a-ho-z] is any character between a and h
or between o and z.  The symbol `^' inside [] complements the list.
For example, [^i-n] denote any character in the character set except
character 'i' to 'n'.
The symbol `^' thus has two meanings, but this is consistent with
The symbol `.' (don't care) stands for any symbol (except for the
newline symbol).

<p> <h3>Boolean operations</h3>

supports an `AND' operation denoted by the symbol `;'
an `OR' operation denoted by the symbol `,',
a limited version of a 'NOT' operation (starting at version 4.0B1)
denoted by the symbol `~',
or any combination.
For example, pizza;cheeseburger' will output all lines containing
both patterns.
'{political,computer};science' will match 'political science'
or 'science of computers'.

<p><h3>Wild cards</h3>

The symbol '#' is used to denote a sequence
of any number (including 0)
of arbitrary characters (see <a href="#Limitations">Limitations</a>).
The symbol # is equivalent to .* in egrep.
In fact, .* will work too, because it is a valid regular expression
(see below), but unless this is part of an actual regular expression,
# will work faster.
(Currently glimpse is experiencing some problems with #.)

<p><h3>Combination of exact and approximate matching</h3>

Any pattern inside angle brackets &lt;&gt; must match the text exactly even
if the match is with errors.  For example, &lt;mathemat&gt;ics matches
mathematical with one error (replacing the last s with an a), but
mathe&lt;matics&gt; does not match mathematical no matter how many errors are
allowed. (This option is buggy at the moment.)

<h3>Regular expressions</h3>

Since the index is word based, a regular expression must match words
that appear in the index for glimpse to find it.  Glimpse first strips
the regular expression from all non-alphabetic characters, and
searches the index for all remaining words.  It then applies the
regular expression matching algorithm to the files found in the index.
For example, glimpse 'abc.*xyz' will search the index for all files
that contain both 'abc' and 'xyz', and then search directly for
'abc.*xyz' in those files.  (If you use glimpse -w 'abc.*xyz', then
'abcxyz' will not be found, because glimpse will think that abc and
xyz need to be matches to whole words.)  The syntax of regular
expressions in glimpse is in general the same as that for agrep.  The
union operation `|', Kleene closure `*', and parentheses () are all
supported.  Currently '+' is not supported.  Regular expressions are
currently limited to approximately 30 characters (generally excluding
meta characters). The maximal number of errors
for regular expressions that use '*' or '|' is 4.

<a name="Limitations"></a><h2>Limitations</h2>

The index of glimpse is word based.  A pattern that contains more than
one word cannot be found in the index.  The way glimpse overcomes this
weakness is by splitting any multi-word pattern into its set of words
and looking for all of them in the index.
For example, <i>'linear programming'</i> will first consult the index
to find all files containing both <i>linear</i> and <i>programming</i>,
and then apply agrep to find the combined pattern.
This is usually an effective solution, but it can be slow for
cases where both words are very common, but their combination is not.

As was mentioned in the section on <a href="#Patterns">Patterns</a> above, some characters
serve as meta characters for glimpse and need to be
preceded by '\\' to search for them.  The most common
examples are the characters '.' (which stands for a wild card),
and '*' (the Kleene closure).
So, "glimpse ab.de" will match abcde, but "glimpse ab\\.de"
will not, and "glimpse ab*de" will not match ab*de, but
"glimpse ab\\*de" will.
The meta character - is translated automatically to a hyphen
unless it appears between [] (in which case it denotes a range of

Search patterns are limited to 29 characters.
Lines are limited to 1024 characters.


  <a href="mailto:lxr@linux.no">
    Arne Georg Gleditsch and Per Kristian Gjermshus</a>