~ubuntu-branches/ubuntu/utopic/exuberant-ctags/utopic

« back to all changes in this revision

Viewing changes to ctags.html

  • Committer: Bazaar Package Importer
  • Author(s): Colin Watson
  • Date: 2009-07-14 15:05:23 UTC
  • mfrom: (1.1.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20090714150523-rytn1psh622nb709
Tags: 1:5.8-1
* New upstream release. Debian bugs fixed:
  - Add support for ASP classes (closes: #529215).
* Compress files using gzip -n (cf. debhelper 6.0.6).
* Add a watch file.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<!-- Creator     : groff version 1.19.1 -->
2
 
<!-- CreationDate: Tue Sep  4 23:16:17 2007 -->
 
1
<!-- Creator     : groff version 1.19.2 -->
 
2
<!-- CreationDate: Thu Jul  9 17:03:58 2009 -->
3
3
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
4
4
"http://www.w3.org/TR/html4/loose.dtd">
5
5
<html>
7
7
<meta name="generator" content="groff -Thtml, see www.gnu.org">
8
8
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
9
9
<meta name="Content-Style" content="text/css">
 
10
<style type="text/css">
 
11
       p     { margin-top: 0; margin-bottom: 0; }
 
12
       pre   { margin-top: 0; margin-bottom: 0; }
 
13
       table { margin-top: 0; margin-bottom: 0; }
 
14
</style>
10
15
<title>CTAGS</title>
 
16
 
11
17
</head>
12
18
<body>
13
19
 
14
20
<h1 align=center>CTAGS</h1>
 
21
 
15
22
<a href="#NAME">NAME</a><br>
16
23
<a href="#SYNOPSIS">SYNOPSIS</a><br>
17
24
<a href="#DESCRIPTION">DESCRIPTION</a><br>
32
39
<a href="#CREDITS">CREDITS</a><br>
33
40
 
34
41
<hr>
 
42
 
 
43
 
35
44
<a name="NAME"></a>
36
45
<h2>NAME</h2>
37
 
<!-- INDENTATION -->
38
 
<table width="100%" border=0 rules="none" frame="void"
39
 
       cols="2" cellspacing="0" cellpadding="0">
40
 
<tr valign="top" align="left">
41
 
<td width="11%"></td>
42
 
<td width="89%">
43
 
<p>ctags &minus; Generate tag files for source code</p>
44
 
</td>
45
 
</table>
 
46
 
 
47
 
 
48
<p style="margin-left:11%; margin-top: 1em">ctags &minus;
 
49
Generate tag files for source code</p>
 
50
 
46
51
<a name="SYNOPSIS"></a>
47
52
<h2>SYNOPSIS</h2>
48
 
<!-- INDENTATION -->
49
 
<table width="100%" border=0 rules="none" frame="void"
50
 
       cols="2" cellspacing="0" cellpadding="0">
51
 
<tr valign="top" align="left">
52
 
<td width="11%"></td>
53
 
<td width="89%">
54
 
<p><b>ctags</b> [<b>options</b>] [<i>file(s)</i>]</p></td>
55
 
</table>
56
 
<!-- INDENTATION -->
57
 
<table width="100%" border=0 rules="none" frame="void"
58
 
       cols="2" cellspacing="0" cellpadding="0">
59
 
<tr valign="top" align="left">
60
 
<td width="11%"></td>
61
 
<td width="89%">
62
 
<p><b>etags</b> [<b>options</b>] [<i>file(s)</i>]</p></td>
63
 
</table>
 
53
 
 
54
 
 
55
<p style="margin-left:11%; margin-top: 1em"><b>ctags</b>
 
56
[<b>options</b>] [<i>file(s)</i>] <b><br>
 
57
etags</b> [<b>options</b>] [<i>file(s)</i>]</p>
 
58
 
64
59
<a name="DESCRIPTION"></a>
65
60
<h2>DESCRIPTION</h2>
66
 
<!-- INDENTATION -->
67
 
<table width="100%" border=0 rules="none" frame="void"
68
 
       cols="2" cellspacing="0" cellpadding="0">
69
 
<tr valign="top" align="left">
70
 
<td width="11%"></td>
71
 
<td width="89%">
72
 
<p>The <b>ctags</b> and <b>etags</b> programs (hereinafter
 
61
 
 
62
 
 
63
<p style="margin-left:11%; margin-top: 1em">The
 
64
<b>ctags</b> and <b>etags</b> programs (hereinafter
73
65
collectively referred to as <b>ctags</b>, except where
74
66
distinguished) generate an index (or &quot;tag&quot;) file
75
67
for a variety of language objects found in <i>file(s)</i>.
78
70
signifies a language object for which an index entry is
79
71
available (or, alternatively, the index entry created for
80
72
that object).</p>
81
 
<!-- INDENTATION -->
82
 
<p>Alternatively, <b>ctags</b> can generate a cross
83
 
reference file which lists, in human readable form,
84
 
information about the various source objects found in a set
85
 
of language files.</p>
86
 
<!-- INDENTATION -->
87
 
<p>Tag index files are supported by numerous editors, which
88
 
allow the user to locate the object associated with a name
89
 
appearing in a source file and jump to the file and line
90
 
which defines the name. Those known about at the time of
91
 
this release are:</p>
92
 
</td>
93
 
</table>
94
 
<!-- INDENTATION -->
95
 
<table width="100%" border=0 rules="none" frame="void"
96
 
       cols="2" cellspacing="0" cellpadding="0">
97
 
<tr valign="top" align="left">
98
 
<td width="17%"></td>
99
 
<td width="83%">
100
 
<p><b>Vi</b>(1) and its derivatives (e.g. Elvis, Vim, Vile,
101
 
Lemmy), <b>CRiSP</b>, <b>Emacs</b>, <b>FTE</b> (Folding Text
 
73
 
 
74
<p style="margin-left:11%; margin-top: 1em">Alternatively,
 
75
<b>ctags</b> can generate a cross reference file which
 
76
lists, in human readable form, information about the various
 
77
source objects found in a set of language files.</p>
 
78
 
 
79
<p style="margin-left:11%; margin-top: 1em">Tag index files
 
80
are supported by numerous editors, which allow the user to
 
81
locate the object associated with a name appearing in a
 
82
source file and jump to the file and line which defines the
 
83
name. Those known about at the time of this release are:</p>
 
84
 
 
85
<p style="margin-left:17%; margin-top: 1em"><b>Vi</b>(1)
 
86
and its derivatives (e.g. Elvis, Vim, Vile, Lemmy),
 
87
<b>CRiSP</b>, <b>Emacs</b>, <b>FTE</b> (Folding Text
102
88
Editor), <b>JED</b>, <b>jEdit</b>, <b>Mined</b>,
103
89
<b>NEdit</b> (Nirvana Edit), <b>TSE</b> (The SemWare
104
90
Editor), <b>UltraEdit</b>, <b>WorkSpace</b>, <b>X2</b>,
105
 
<b>Zeus</b></p></td>
106
 
</table>
107
 
<!-- INDENTATION -->
108
 
<table width="100%" border=0 rules="none" frame="void"
109
 
       cols="2" cellspacing="0" cellpadding="0">
110
 
<tr valign="top" align="left">
111
 
<td width="11%"></td>
112
 
<td width="89%">
113
 
<p><b>Ctags</b> is capable of generating different kinds of
114
 
tags for each of many different languages. For a complete
115
 
list of supported languages, the names by which they are
116
 
recognized, and the kinds of tags which are generated for
117
 
each, see the <b>&minus;&minus;list&minus;languages</b> and
 
91
<b>Zeus</b></p>
 
92
 
 
93
<p style="margin-left:11%; margin-top: 1em"><b>Ctags</b> is
 
94
capable of generating different kinds of tags for each of
 
95
many different languages. For a complete list of supported
 
96
languages, the names by which they are recognized, and the
 
97
kinds of tags which are generated for each, see the
 
98
<b>&minus;&minus;list&minus;languages</b> and
118
99
<b>&minus;&minus;list&minus;kinds</b> options.</p>
119
 
</td>
120
 
</table>
 
100
 
121
101
<a name="SOURCE FILES"></a>
122
102
<h2>SOURCE FILES</h2>
123
 
<!-- INDENTATION -->
124
 
<table width="100%" border=0 rules="none" frame="void"
125
 
       cols="2" cellspacing="0" cellpadding="0">
126
 
<tr valign="top" align="left">
127
 
<td width="11%"></td>
128
 
<td width="89%">
129
 
<p>Unless the <b>&minus;&minus;language&minus;force</b>
130
 
option is specified, the language of each source file is
131
 
automatically selected based upon a mapping of file names to
132
 
languages. The mappings in effect for each language may be
133
 
display using the <b>&minus;&minus;list&minus;maps</b>
134
 
option and may be changed using the
135
 
<b>&minus;&minus;langmap</b> option. On platforms which
136
 
support it, if the name of a file is not mapped to a
137
 
language and the file is executable, the first line of the
138
 
file is checked to see if the file is a &quot;#!&quot;
139
 
script for a recognized language.</p>
140
 
<!-- INDENTATION -->
141
 
<p>By default, all other files names are ignored. This
142
 
permits running <b>ctags</b> on all files in either a single
143
 
directory (e.g. &quot;ctags *&quot;), or on all files in an
144
 
entire source directory tree (e.g. &quot;ctags
145
 
&minus;R&quot;), since only those files whose names are
146
 
mapped to languages will be scanned.</p>
147
 
<!-- INDENTATION -->
148
 
<p>[The reason that .h extensions are mapped to C++ files
149
 
rather than C files is because it is common to use .h
150
 
extensions in C++, and no harm results in treating them as
151
 
C++ files.]</p>
152
 
</td>
153
 
</table>
 
103
 
 
104
 
 
105
<p style="margin-left:11%; margin-top: 1em">Unless the
 
106
<b>&minus;&minus;language&minus;force</b> option is
 
107
specified, the language of each source file is automatically
 
108
selected based upon a mapping of file names to languages.
 
109
The mappings in effect for each language may be display
 
110
using the <b>&minus;&minus;list&minus;maps</b> option and
 
111
may be changed using the <b>&minus;&minus;langmap</b>
 
112
option. On platforms which support it, if the name of a file
 
113
is not mapped to a language and the file is executable, the
 
114
first line of the file is checked to see if the file is a
 
115
&quot;#!&quot; script for a recognized language.</p>
 
116
 
 
117
<p style="margin-left:11%; margin-top: 1em">By default, all
 
118
other files names are ignored. This permits running
 
119
<b>ctags</b> on all files in either a single directory (e.g.
 
120
&quot;ctags *&quot;), or on all files in an entire source
 
121
directory tree (e.g. &quot;ctags &minus;R&quot;), since only
 
122
those files whose names are mapped to languages will be
 
123
scanned.</p>
 
124
 
 
125
<p style="margin-left:11%; margin-top: 1em">[The reason
 
126
that .h extensions are mapped to C++ files rather than C
 
127
files is because it is common to use .h extensions in C++,
 
128
and no harm results in treating them as C++ files.]</p>
 
129
 
154
130
<a name="OPTIONS"></a>
155
131
<h2>OPTIONS</h2>
156
 
<!-- INDENTATION -->
157
 
<table width="100%" border=0 rules="none" frame="void"
158
 
       cols="2" cellspacing="0" cellpadding="0">
159
 
<tr valign="top" align="left">
160
 
<td width="11%"></td>
161
 
<td width="89%">
162
 
<p>Despite the wealth of available options, defaults are set
163
 
so that <b>ctags</b> is most commonly executed without any
164
 
options (e.g. &quot;ctags *&quot;, or &quot;ctags
165
 
&minus;R&quot;), which will create a tag file in the current
166
 
directory for all recognized source files. The options
167
 
described below are provided merely to allow custom
168
 
tailoring to meet special needs.</p>
169
 
<!-- INDENTATION -->
170
 
<p>Note that spaces separating the single-letter options
171
 
from their parameters are optional.</p>
172
 
<!-- INDENTATION -->
173
 
<p>Note also that the boolean parameters to the long form
174
 
options (those beginning with &quot;&minus;&minus;&quot; and
175
 
that take a &quot;<i>[=yes</i>|<i>no]</i>&quot; parameter)
176
 
may be omitted, in which case &quot;<b>=</b><i>yes</i>&quot;
177
 
is implied. (e.g. <b>&minus;&minus;sort</b> is equivalent to
 
132
 
 
133
 
 
134
<p style="margin-left:11%; margin-top: 1em">Despite the
 
135
wealth of available options, defaults are set so that
 
136
<b>ctags</b> is most commonly executed without any options
 
137
(e.g. &quot;ctags *&quot;, or &quot;ctags &minus;R&quot;),
 
138
which will create a tag file in the current directory for
 
139
all recognized source files. The options described below are
 
140
provided merely to allow custom tailoring to meet special
 
141
needs.</p>
 
142
 
 
143
<p style="margin-left:11%; margin-top: 1em">Note that
 
144
spaces separating the single-letter options from their
 
145
parameters are optional.</p>
 
146
 
 
147
<p style="margin-left:11%; margin-top: 1em">Note also that
 
148
the boolean parameters to the long form options (those
 
149
beginning with &quot;&minus;&minus;&quot; and that take a
 
150
&quot;<i>[=yes</i>|<i>no]</i>&quot; parameter) may be
 
151
omitted, in which case &quot;<b>=</b><i>yes</i>&quot; is
 
152
implied. (e.g. <b>&minus;&minus;sort</b> is equivalent to
178
153
<b>&minus;&minus;sort</b>=<i>yes</i>). Note further that
179
154
&quot;=<i>1</i>&quot; and &quot;=<i>on</i>&quot; are
180
155
considered synonyms for &quot;=<i>yes</i>&quot;, and that
181
156
&quot;=<i>0</i>&quot; and &quot;=<i>off</i>&quot; are
182
157
considered synonyms for &quot;=<i>no</i>&quot;.</p>
183
 
<!-- INDENTATION -->
184
 
<p>Some options are either ignored or useful only when used
185
 
while running in etags mode (see <b>&minus;e</b> option).
186
 
Such options will be noted.</p>
187
 
<!-- INDENTATION -->
188
 
<p>Most options may appear anywhere on the command line,
189
 
affecting only those files which follow the option. A few
190
 
options, however, must appear before the first file name and
191
 
will be noted as such.</p>
192
 
<!-- INDENTATION -->
193
 
<p>Options taking language names will accept those names in
194
 
either upper or lower case. See the
 
158
 
 
159
<p style="margin-left:11%; margin-top: 1em">Some options
 
160
are either ignored or useful only when used while running in
 
161
etags mode (see <b>&minus;e</b> option). Such options will
 
162
be noted.</p>
 
163
 
 
164
<p style="margin-left:11%; margin-top: 1em">Most options
 
165
may appear anywhere on the command line, affecting only
 
166
those files which follow the option. A few options, however,
 
167
must appear before the first file name and will be noted as
 
168
such.</p>
 
169
 
 
170
<p style="margin-left:11%; margin-top: 1em">Options taking
 
171
language names will accept those names in either upper or
 
172
lower case. See the
195
173
<b>&minus;&minus;list&minus;languages</b> option for a
196
174
complete list of the built-in language names.</p>
197
 
</td>
198
 
</table>
199
 
<!-- TABS -->
 
175
 
200
176
<table width="100%" border=0 rules="none" frame="void"
201
 
       cols="4" cellspacing="0" cellpadding="0">
202
 
<tr valign="top" align="left">
203
 
<td width="11%"></td>
204
 
<td width="3%">
205
 
 
206
 
<p><b>&minus;a</b></p>
207
 
</td>
208
 
<td width="4%"></td>
209
 
<td width="82%">
210
 
 
211
 
<p>Equivalent to <b>&minus;&minus;append</b>.</p>
212
 
</td>
213
 
<tr valign="top" align="left">
214
 
<td width="11%"></td>
215
 
<td width="3%">
216
 
 
217
 
<p><b>&minus;B</b></p>
218
 
</td>
219
 
<td width="4%"></td>
220
 
<td width="82%">
 
177
       cellspacing="0" cellpadding="0">
 
178
<tr valign="top" align="left">
 
179
<td width="11%"></td>
 
180
<td width="3%">
 
181
 
 
182
 
 
183
 
 
184
<p style="margin-top: 1em" valign="top"><b>&minus;a</b></p> </td>
 
185
<td width="4%"></td>
 
186
<td width="82%">
 
187
 
 
188
 
 
189
<p style="margin-top: 1em" valign="top">Equivalent to
 
190
<b>&minus;&minus;append</b>.</p> </td>
 
191
<tr valign="top" align="left">
 
192
<td width="11%"></td>
 
193
<td width="3%">
 
194
 
 
195
 
 
196
<p><b>&minus;B</b></p></td>
 
197
<td width="4%"></td>
 
198
<td width="82%">
 
199
 
221
200
 
222
201
<p>Use backward searching patterns (e.g. ?pattern?).
223
 
[Ignored in etags mode]</p>
224
 
</td>
 
202
[Ignored in etags mode]</p></td>
225
203
<tr valign="top" align="left">
226
204
<td width="11%"></td>
227
205
<td width="3%">
228
206
 
229
 
<p><b>&minus;e</b></p>
230
 
</td>
 
207
 
 
208
<p><b>&minus;e</b></p></td>
231
209
<td width="4%"></td>
232
210
<td width="82%">
233
211
 
 
212
 
234
213
<p>Enable etags mode, which will create a tag file for use
235
214
with the Emacs editor. Alternatively, if <b>ctags</b> is
236
215
invoked by a name containing the string &quot;etags&quot;
237
216
(either by renaming, or creating a link to, the executable),
238
217
etags mode will be enabled. This option must appear before
239
 
the first file name.</p>
240
 
</td>
241
 
</table>
242
 
<!-- INDENTATION -->
243
 
<table width="100%" border=0 rules="none" frame="void"
244
 
       cols="2" cellspacing="0" cellpadding="0">
245
 
<tr valign="top" align="left">
246
 
<td width="11%"></td>
247
 
<td width="89%">
248
 
<p><b>&minus;f</b> <i>tagfile</i></p></td>
249
 
</table>
250
 
<!-- INDENTATION -->
251
 
<table width="100%" border=0 rules="none" frame="void"
252
 
       cols="2" cellspacing="0" cellpadding="0">
253
 
<tr valign="top" align="left">
254
 
<td width="18%"></td>
255
 
<td width="82%">
256
 
<p>Use the name specified by <i>tagfile</i> for the tag file
257
 
(default is &quot;tags&quot;, or &quot;TAGS&quot; when
258
 
running in etags mode). If <i>tagfile</i> is specified as
 
218
the first file name.</p></td>
 
219
</table>
 
220
 
 
221
<p style="margin-left:11%;"><b>&minus;f</b>
 
222
<i>tagfile</i></p>
 
223
 
 
224
<p style="margin-left:18%;">Use the name specified by
 
225
<i>tagfile</i> for the tag file (default is
 
226
&quot;tags&quot;, or &quot;TAGS&quot; when running in etags
 
227
mode). If <i>tagfile</i> is specified as
259
228
&quot;&minus;&quot;, then the tag file is written to
260
229
standard output instead. <b>Ctags</b> will stubbornly refuse
261
230
to take orders if <i>tagfile</i> exists and its first line
272
241
&quot;./&minus;ugly&quot;. This option must appear before
273
242
the first file name. If this option is specified more than
274
243
once, only the last will apply.</p>
275
 
</td>
276
 
</table>
277
 
<!-- TABS -->
 
244
 
278
245
<table width="100%" border=0 rules="none" frame="void"
279
 
       cols="4" cellspacing="0" cellpadding="0">
 
246
       cellspacing="0" cellpadding="0">
280
247
<tr valign="top" align="left">
281
248
<td width="11%"></td>
282
249
<td width="3%">
283
250
 
284
 
<p><b>&minus;F</b></p>
285
 
</td>
 
251
 
 
252
 
 
253
<p style="margin-top: 1em" valign="top"><b>&minus;F</b></p> </td>
286
254
<td width="4%"></td>
287
255
<td width="82%">
288
256
 
289
 
<p>Use forward searching patterns (e.g. /pattern/)
290
 
(default). [Ignored in etags mode]</p>
291
 
</td>
292
 
</table>
293
 
<!-- INDENTATION -->
294
 
<table width="100%" border=0 rules="none" frame="void"
295
 
       cols="2" cellspacing="0" cellpadding="0">
296
 
<tr valign="top" align="left">
297
 
<td width="11%"></td>
298
 
<td width="89%">
299
 
<p><b>&minus;h</b> <i>list</i></p></td>
300
 
</table>
301
 
<!-- INDENTATION -->
302
 
<table width="100%" border=0 rules="none" frame="void"
303
 
       cols="2" cellspacing="0" cellpadding="0">
304
 
<tr valign="top" align="left">
305
 
<td width="18%"></td>
306
 
<td width="82%">
307
 
<p>Specifies a list of file extensions, separated by
308
 
periods, which are to be interpreted as include (or header)
309
 
files. To indicate files having no extension, use a period
310
 
not followed by a non-period character (e.g. &quot;.&quot;,
311
 
&quot;..x&quot;, &quot;.x.&quot;). This option only affects
312
 
how the scoping of a particular kinds of tags is interpreted
313
 
(i.e. whether or not they are considered as globally visible
314
 
or visible only within the file in which they are defined);
315
 
it does not map the extension to any particular language.
316
 
Any tag which is located in a non-include file and cannot be
317
 
seen (e.g. linked to) from another file is considered to
318
 
have file-limited (e.g. static) scope. No kind of tag
319
 
appearing in an include file will be considered to have
320
 
file-limited scope. If the first character in the list is a
321
 
plus sign, then the extensions in the list will be appended
322
 
to the current list; otherwise, the list will replace the
323
 
current list. See, also, the
324
 
<b>&minus;&minus;file&minus;scope</b> option. The default
325
 
list is &quot;.h.H.hh.hpp.hxx.h++.inc.def&quot;. To restore
326
 
the default list, specify <b>&minus;h</b> <i>default</i>.
327
 
Note that if an extension supplied to this option is not
328
 
already mapped to a particular language (see <b>SOURCE
329
 
FILES</b>, above), you will also need to use either the
 
257
 
 
258
<p style="margin-top: 1em" valign="top">Use forward
 
259
searching patterns (e.g. /pattern/) (default). [Ignored in
 
260
etags mode]</p></td>
 
261
</table>
 
262
 
 
263
<p style="margin-left:11%;"><b>&minus;h</b> <i>list</i></p>
 
264
 
 
265
<p style="margin-left:18%;">Specifies a list of file
 
266
extensions, separated by periods, which are to be
 
267
interpreted as include (or header) files. To indicate files
 
268
having no extension, use a period not followed by a
 
269
non-period character (e.g. &quot;.&quot;, &quot;..x&quot;,
 
270
&quot;.x.&quot;). This option only affects how the scoping
 
271
of a particular kinds of tags is interpreted (i.e. whether
 
272
or not they are considered as globally visible or visible
 
273
only within the file in which they are defined); it does not
 
274
map the extension to any particular language. Any tag which
 
275
is located in a non-include file and cannot be seen (e.g.
 
276
linked to) from another file is considered to have
 
277
file-limited (e.g. static) scope. No kind of tag appearing
 
278
in an include file will be considered to have file-limited
 
279
scope. If the first character in the list is a plus sign,
 
280
then the extensions in the list will be appended to the
 
281
current list; otherwise, the list will replace the current
 
282
list. See, also, the <b>&minus;&minus;file&minus;scope</b>
 
283
option. The default list is
 
284
&quot;.h.H.hh.hpp.hxx.h++.inc.def&quot;. To restore the
 
285
default list, specify <b>&minus;h</b> <i>default</i>. Note
 
286
that if an extension supplied to this option is not already
 
287
mapped to a particular language (see <b>SOURCE FILES</b>,
 
288
above), you will also need to use either the
330
289
<b>&minus;&minus;langmap</b> or
331
290
<b>&minus;&minus;language&minus;force</b> option.</p>
332
 
</td>
333
 
</table>
334
 
<!-- INDENTATION -->
335
 
<table width="100%" border=0 rules="none" frame="void"
336
 
       cols="2" cellspacing="0" cellpadding="0">
337
 
<tr valign="top" align="left">
338
 
<td width="11%"></td>
339
 
<td width="89%">
340
 
<p><b>&minus;I</b> <i>identifier&minus;list</i></p></td>
341
 
</table>
342
 
<!-- INDENTATION -->
343
 
<table width="100%" border=0 rules="none" frame="void"
344
 
       cols="2" cellspacing="0" cellpadding="0">
345
 
<tr valign="top" align="left">
346
 
<td width="18%"></td>
347
 
<td width="82%">
348
 
<p>Specifies a list of identifiers which are to be specially
349
 
handled while parsing C and C++ source files. This option is
350
 
specifically provided to handle special cases arising
351
 
through the use of preprocessor macros. When the identifiers
352
 
listed are simple identifiers, these identifiers will be
353
 
ignored during parsing of the source files. If an identifier
354
 
is suffixed with a &rsquo;+&rsquo; character, <b>ctags</b>
355
 
will also ignore any parenthesis-enclosed argument list
356
 
which may immediately follow the identifier in the source
357
 
files. If two identifiers are separated with the
358
 
&rsquo;=&rsquo; character, the first identifiers is replaced
359
 
by the second identifiers for parsing purposes. The list of
360
 
identifiers may be supplied directly on the command line or
361
 
read in from a separate file. If the first character of
 
291
 
 
292
<p style="margin-left:11%;"><b>&minus;I</b>
 
293
<i>identifier&minus;list</i></p>
 
294
 
 
295
<p style="margin-left:18%;">Specifies a list of identifiers
 
296
which are to be specially handled while parsing C and C++
 
297
source files. This option is specifically provided to handle
 
298
special cases arising through the use of preprocessor
 
299
macros. When the identifiers listed are simple identifiers,
 
300
these identifiers will be ignored during parsing of the
 
301
source files. If an identifier is suffixed with a
 
302
&rsquo;+&rsquo; character, <b>ctags</b> will also ignore any
 
303
parenthesis-enclosed argument list which may immediately
 
304
follow the identifier in the source files. If two
 
305
identifiers are separated with the &rsquo;=&rsquo;
 
306
character, the first identifiers is replaced by the second
 
307
identifiers for parsing purposes. The list of identifiers
 
308
may be supplied directly on the command line or read in from
 
309
a separate file. If the first character of
362
310
<i>identifier&minus;list</i> is &rsquo;@&rsquo;,
363
311
&rsquo;.&rsquo; or a pathname separator (&rsquo;/&rsquo; or
364
312
&rsquo;\&rsquo;), or the first two characters specify a
373
321
<b>&minus;I</b> options may be supplied. To clear the list
374
322
of ignore identifiers, supply a single dash
375
323
(&quot;&minus;&quot;) for <i>identifier&minus;list</i>.</p>
376
 
<!-- INDENTATION -->
377
 
<p>This feature is useful when preprocessor macros are used
378
 
in such a way that they cause syntactic confusion due to
379
 
their presence. Indeed, this is the best way of working
380
 
around a number of problems caused by the presence of
381
 
syntax-busting macros in source files (see <b>CAVEATS</b>,
382
 
below). Some examples will illustrate this point.</p>
383
 
</td>
384
 
</table>
385
 
<!-- INDENTATION -->
386
 
<table width="100%" border=0 rules="none" frame="void"
387
 
       cols="2" cellspacing="0" cellpadding="0">
388
 
<tr valign="top" align="left">
389
 
<td width="23%"></td>
390
 
<td width="77%">
391
 
<p>int foo ARGDECL4(void *, ptr, long int, nbytes)</p></td>
392
 
</table>
393
 
<!-- INDENTATION -->
394
 
<table width="100%" border=0 rules="none" frame="void"
395
 
       cols="2" cellspacing="0" cellpadding="0">
396
 
<tr valign="top" align="left">
397
 
<td width="18%"></td>
398
 
<td width="82%">
399
 
<p>In the above example, the macro &quot;ARGDECL4&quot;
400
 
would be mistakenly interpreted to be the name of the
401
 
function instead of the correct name of &quot;foo&quot;.
402
 
Specifying <b>&minus;I</b> <i>ARGDECL4</i> results in the
403
 
correct behavior.</p>
404
 
</td>
405
 
</table>
406
 
<!-- INDENTATION -->
407
 
<table width="100%" border=0 rules="none" frame="void"
408
 
       cols="2" cellspacing="0" cellpadding="0">
409
 
<tr valign="top" align="left">
410
 
<td width="23%"></td>
411
 
<td width="77%">
412
 
<p>/* creates an RCS version string in module */</p></td>
413
 
</table>
414
 
<!-- INDENTATION -->
415
 
<table width="100%" border=0 rules="none" frame="void"
416
 
       cols="2" cellspacing="0" cellpadding="0">
417
 
<tr valign="top" align="left">
418
 
<td width="18%"></td>
419
 
<td width="82%">
420
 
<p>MODULE_VERSION(&quot;$Revision: 590 $&quot;)</p></td>
421
 
</table>
422
 
<!-- INDENTATION -->
423
 
<table width="100%" border=0 rules="none" frame="void"
424
 
       cols="2" cellspacing="0" cellpadding="0">
425
 
<tr valign="top" align="left">
426
 
<td width="18%"></td>
427
 
<td width="82%">
428
 
<p>In the above example the macro invocation looks too much
429
 
like a function definition because it is not followed by a
430
 
semicolon (indeed, it could even be followed by a global
431
 
variable definition that would look much like a K&amp;R
432
 
style function parameter declaration). In fact, this seeming
 
324
 
 
325
<p style="margin-left:18%; margin-top: 1em">This feature is
 
326
useful when preprocessor macros are used in such a way that
 
327
they cause syntactic confusion due to their presence.
 
328
Indeed, this is the best way of working around a number of
 
329
problems caused by the presence of syntax-busting macros in
 
330
source files (see <b>CAVEATS</b>, below). Some examples will
 
331
illustrate this point.</p>
 
332
 
 
333
<p style="margin-left:23%; margin-top: 1em">int foo
 
334
ARGDECL4(void *, ptr, long int, nbytes)</p>
 
335
 
 
336
<p style="margin-left:18%; margin-top: 1em">In the above
 
337
example, the macro &quot;ARGDECL4&quot; would be mistakenly
 
338
interpreted to be the name of the function instead of the
 
339
correct name of &quot;foo&quot;. Specifying <b>&minus;I</b>
 
340
<i>ARGDECL4</i> results in the correct behavior.</p>
 
341
 
 
342
<p style="margin-left:23%; margin-top: 1em">/* creates an
 
343
RCS version string in module */ <br>
 
344
MODULE_VERSION(&quot;$Revision: 690 $&quot;)</p>
 
345
 
 
346
<p style="margin-left:18%; margin-top: 1em">In the above
 
347
example the macro invocation looks too much like a function
 
348
definition because it is not followed by a semicolon
 
349
(indeed, it could even be followed by a global variable
 
350
definition that would look much like a K&amp;R style
 
351
function parameter declaration). In fact, this seeming
433
352
function definition could possibly even cause the rest of
434
353
the file to be skipped over while trying to complete the
435
354
definition. Specifying <b>&minus;I</b>
436
355
<i>MODULE_VERSION+</i> would avoid such a problem.</p>
437
 
</td>
438
 
</table>
439
 
<!-- INDENTATION -->
440
 
<table width="100%" border=0 rules="none" frame="void"
441
 
       cols="2" cellspacing="0" cellpadding="0">
442
 
<tr valign="top" align="left">
443
 
<td width="23%"></td>
444
 
<td width="77%">
445
 
<p>CLASS Example {<br>
446
 
// your content here<br>
447
 
};</p></td>
448
 
</table>
449
 
<!-- INDENTATION -->
450
 
<table width="100%" border=0 rules="none" frame="void"
451
 
       cols="2" cellspacing="0" cellpadding="0">
452
 
<tr valign="top" align="left">
453
 
<td width="18%"></td>
454
 
<td width="82%">
455
 
<p>The example above uses &quot;CLASS&quot; as a
456
 
preprocessor macro which expands to something different for
457
 
each platform. For instance CLASS may be defined as
458
 
&quot;class __declspec(dllexport)&quot; on Win32 platforms
459
 
and simply &quot;class&quot; on UNIX. Normally, the absence
460
 
of the C++ keyword &quot;class&quot; would cause the source
461
 
file to be incorrectly parsed. Correct behavior can be
462
 
restored by specifying <b>&minus;I</b>
463
 
<i>CLASS=class</i>.</p>
464
 
</td>
465
 
</table>
466
 
<!-- INDENTATION -->
467
 
<table width="100%" border=0 rules="none" frame="void"
468
 
       cols="2" cellspacing="0" cellpadding="0">
469
 
<tr valign="top" align="left">
470
 
<td width="11%"></td>
471
 
<td width="89%">
472
 
<p><b>&minus;L</b> <i>file</i></p></td>
473
 
</table>
474
 
<!-- INDENTATION -->
475
 
<table width="100%" border=0 rules="none" frame="void"
476
 
       cols="2" cellspacing="0" cellpadding="0">
477
 
<tr valign="top" align="left">
478
 
<td width="18%"></td>
479
 
<td width="82%">
480
 
<p>Read from <i>file</i> a list of file names for which tags
481
 
should be generated. If <i>file</i> is specified as
482
 
&quot;&minus;&quot;, then file names are read from standard
483
 
input. File names read using this option are processed
484
 
following file names appearing on the command line. Options
485
 
are also accepted in this input. If this option is specified
486
 
more than once, only the last will apply. <b>Note:</b>
487
 
<i>file</i> is read in line-oriented mode, where a new line
488
 
is the only delimiter and non-trailing white space is
489
 
considered significant, in order that file names containing
490
 
spaces may be supplied (however, trailing white space is
491
 
stripped from lines); this can affect how options are parsed
492
 
if included in the input.</p>
493
 
</td>
494
 
</table>
495
 
<!-- TABS -->
496
 
<table width="100%" border=0 rules="none" frame="void"
497
 
       cols="5" cellspacing="0" cellpadding="0">
498
 
<tr valign="top" align="left">
499
 
<td width="11%"></td>
500
 
<td width="3%">
501
 
 
502
 
<p><b>&minus;n</b></p>
503
 
</td>
504
 
<td width="4%"></td>
505
 
<td width="47%">
506
 
 
507
 
<p>Equivalent to
508
 
<b>&minus;&minus;excmd</b>=<i>number</i>.</p>
509
 
</td>
510
 
<td width="35%">
511
 
</td>
512
 
<tr valign="top" align="left">
513
 
<td width="11%"></td>
514
 
<td width="3%">
515
 
 
516
 
<p><b>&minus;N</b></p>
517
 
</td>
518
 
<td width="4%"></td>
519
 
<td width="47%">
520
 
 
521
 
<p>Equivalent to
522
 
<b>&minus;&minus;excmd</b>=<i>pattern</i>.</p>
523
 
</td>
524
 
<td width="35%">
525
 
</td>
526
 
</table>
527
 
<!-- INDENTATION -->
528
 
<table width="100%" border=0 rules="none" frame="void"
529
 
       cols="2" cellspacing="0" cellpadding="0">
530
 
<tr valign="top" align="left">
531
 
<td width="11%"></td>
532
 
<td width="89%">
533
 
<p><b>&minus;o</b> <i>tagfile</i></p></td>
534
 
</table>
535
 
<!-- INDENTATION -->
536
 
<table width="100%" border=0 rules="none" frame="void"
537
 
       cols="2" cellspacing="0" cellpadding="0">
538
 
<tr valign="top" align="left">
539
 
<td width="18%"></td>
540
 
<td width="82%">
541
 
<p>Equivalent to <b>&minus;f</b> <i>tagfile</i>.</p>
542
 
</td>
543
 
</table>
544
 
<!-- TABS -->
545
 
<table width="100%" border=0 rules="none" frame="void"
546
 
       cols="4" cellspacing="0" cellpadding="0">
547
 
<tr valign="top" align="left">
548
 
<td width="11%"></td>
549
 
<td width="3%">
550
 
 
551
 
<p><b>&minus;R</b></p>
552
 
</td>
553
 
<td width="4%"></td>
554
 
<td width="82%">
555
 
 
556
 
<p>Equivalent to <b>&minus;&minus;recurse</b>.</p>
557
 
</td>
558
 
<tr valign="top" align="left">
559
 
<td width="11%"></td>
560
 
<td width="3%">
561
 
 
562
 
<p><b>&minus;u</b></p>
563
 
</td>
564
 
<td width="4%"></td>
565
 
<td width="82%">
 
356
 
 
357
<p style="margin-left:23%; margin-top: 1em">CLASS Example {
 
358
<br>
 
359
// your content here <br>
 
360
};</p>
 
361
 
 
362
<p style="margin-left:18%; margin-top: 1em">The example
 
363
above uses &quot;CLASS&quot; as a preprocessor macro which
 
364
expands to something different for each platform. For
 
365
instance CLASS may be defined as &quot;class
 
366
__declspec(dllexport)&quot; on Win32 platforms and simply
 
367
&quot;class&quot; on UNIX. Normally, the absence of the C++
 
368
keyword &quot;class&quot; would cause the source file to be
 
369
incorrectly parsed. Correct behavior can be restored by
 
370
specifying <b>&minus;I</b> <i>CLASS=class</i>.</p>
 
371
 
 
372
<p style="margin-left:11%;"><b>&minus;L</b> <i>file</i></p>
 
373
 
 
374
<p style="margin-left:18%;">Read from <i>file</i> a list of
 
375
file names for which tags should be generated. If
 
376
<i>file</i> is specified as &quot;&minus;&quot;, then file
 
377
names are read from standard input. File names read using
 
378
this option are processed following file names appearing on
 
379
the command line. Options are also accepted in this input.
 
380
If this option is specified more than once, only the last
 
381
will apply. <b>Note:</b> <i>file</i> is read in
 
382
line-oriented mode, where a new line is the only delimiter
 
383
and non-trailing white space is considered significant, in
 
384
order that file names containing spaces may be supplied
 
385
(however, trailing white space is stripped from lines); this
 
386
can affect how options are parsed if included in the
 
387
input.</p>
 
388
 
 
389
<table width="100%" border=0 rules="none" frame="void"
 
390
       cellspacing="0" cellpadding="0">
 
391
<tr valign="top" align="left">
 
392
<td width="11%"></td>
 
393
<td width="3%">
 
394
 
 
395
 
 
396
 
 
397
<p style="margin-top: 1em" valign="top"><b>&minus;n</b></p> </td>
 
398
<td width="4%"></td>
 
399
<td width="47%">
 
400
 
 
401
 
 
402
<p style="margin-top: 1em" valign="top">Equivalent to
 
403
<b>&minus;&minus;excmd</b>=<i>number</i>.</p> </td>
 
404
<td width="35%">
 
405
</td>
 
406
<tr valign="top" align="left">
 
407
<td width="11%"></td>
 
408
<td width="3%">
 
409
 
 
410
 
 
411
<p><b>&minus;N</b></p></td>
 
412
<td width="4%"></td>
 
413
<td width="47%">
 
414
 
 
415
 
 
416
<p>Equivalent to
 
417
<b>&minus;&minus;excmd</b>=<i>pattern</i>.</p> </td>
 
418
<td width="35%">
 
419
</td>
 
420
</table>
 
421
 
 
422
<p style="margin-left:11%;"><b>&minus;o</b>
 
423
<i>tagfile</i></p>
 
424
 
 
425
<p style="margin-left:18%;">Equivalent to <b>&minus;f</b>
 
426
<i>tagfile</i>.</p>
 
427
 
 
428
<table width="100%" border=0 rules="none" frame="void"
 
429
       cellspacing="0" cellpadding="0">
 
430
<tr valign="top" align="left">
 
431
<td width="11%"></td>
 
432
<td width="3%">
 
433
 
 
434
 
 
435
 
 
436
<p style="margin-top: 1em" valign="top"><b>&minus;R</b></p> </td>
 
437
<td width="4%"></td>
 
438
<td width="82%">
 
439
 
 
440
 
 
441
<p style="margin-top: 1em" valign="top">Equivalent to
 
442
<b>&minus;&minus;recurse</b>.</p> </td>
 
443
<tr valign="top" align="left">
 
444
<td width="11%"></td>
 
445
<td width="3%">
 
446
 
 
447
 
 
448
<p><b>&minus;u</b></p></td>
 
449
<td width="4%"></td>
 
450
<td width="82%">
 
451
 
566
452
 
567
453
<p>Equivalent to <b>&minus;&minus;sort</b>=<i>no</i> (i.e.
568
 
&quot;unsorted&quot;).</p>
569
 
</td>
570
 
<tr valign="top" align="left">
571
 
<td width="11%"></td>
572
 
<td width="3%">
573
 
 
574
 
<p><b>&minus;V</b></p>
575
 
</td>
576
 
<td width="4%"></td>
577
 
<td width="82%">
578
 
 
579
 
<p>Equivalent to <b>&minus;&minus;verbose</b>.</p>
580
 
</td>
581
 
<tr valign="top" align="left">
582
 
<td width="11%"></td>
583
 
<td width="3%">
584
 
 
585
 
<p><b>&minus;w</b></p>
586
 
</td>
587
 
<td width="4%"></td>
588
 
<td width="82%">
 
454
&quot;unsorted&quot;).</p> </td>
 
455
<tr valign="top" align="left">
 
456
<td width="11%"></td>
 
457
<td width="3%">
 
458
 
 
459
 
 
460
<p><b>&minus;V</b></p></td>
 
461
<td width="4%"></td>
 
462
<td width="82%">
 
463
 
 
464
 
 
465
<p>Equivalent to <b>&minus;&minus;verbose</b>.</p></td>
 
466
<tr valign="top" align="left">
 
467
<td width="11%"></td>
 
468
<td width="3%">
 
469
 
 
470
 
 
471
<p><b>&minus;w</b></p></td>
 
472
<td width="4%"></td>
 
473
<td width="82%">
 
474
 
589
475
 
590
476
<p>This option is silently ignored for
591
 
backward-compatibility with the ctags of SVR4 Unix.</p>
592
 
</td>
 
477
backward-compatibility with the ctags of SVR4 Unix.</p></td>
593
478
<tr valign="top" align="left">
594
479
<td width="11%"></td>
595
480
<td width="3%">
596
481
 
597
 
<p><b>&minus;x</b></p>
598
 
</td>
 
482
 
 
483
<p><b>&minus;x</b></p></td>
599
484
<td width="4%"></td>
600
485
<td width="82%">
601
486
 
 
487
 
602
488
<p>Print a tabular, human-readable cross reference (xref)
603
489
file to standard output instead of generating a tag file.
604
490
The information contained in the output includes: the tag
613
499
located in a source file (e.g. <b>ctags &minus;x
614
500
&minus;&minus;c&minus;kinds</b>=<i>v</i>
615
501
<b>&minus;&minus;file&minus;scope</b>=<i>no file</i>). This
616
 
option must appear before the first file name.</p>
617
 
</td>
618
 
</table>
619
 
<!-- INDENTATION -->
620
 
<table width="100%" border=0 rules="none" frame="void"
621
 
       cols="2" cellspacing="0" cellpadding="0">
622
 
<tr valign="top" align="left">
623
 
<td width="11%"></td>
624
 
<td width="89%">
625
 
 
626
 
<p><b>&minus;&minus;append</b>[=<i>yes</i>|<i>no</i>]</p></td>
627
 
</table>
628
 
<!-- INDENTATION -->
629
 
<table width="100%" border=0 rules="none" frame="void"
630
 
       cols="2" cellspacing="0" cellpadding="0">
631
 
<tr valign="top" align="left">
632
 
<td width="18%"></td>
633
 
<td width="82%">
634
 
<p>Indicates whether tags generated from the specified files
635
 
should be appended to those already present in the tag file
636
 
or should replace them. This option is off by default. This
637
 
option must appear before the first file name.</p>
638
 
</td>
639
 
</table>
640
 
<!-- INDENTATION -->
641
 
<table width="100%" border=0 rules="none" frame="void"
642
 
       cols="2" cellspacing="0" cellpadding="0">
643
 
<tr valign="top" align="left">
644
 
<td width="11%"></td>
645
 
<td width="89%">
646
 
 
647
 
<p><b>&minus;&minus;etags&minus;include</b>=<i>file</i></p></td>
648
 
</table>
649
 
<!-- INDENTATION -->
650
 
<table width="100%" border=0 rules="none" frame="void"
651
 
       cols="2" cellspacing="0" cellpadding="0">
652
 
<tr valign="top" align="left">
653
 
<td width="18%"></td>
654
 
<td width="82%">
655
 
<p>Include a reference to <i>file</i> in the tag file. This
656
 
option may be specified as many times as desired. This
657
 
supports Emacs&rsquo; capability to use a tag file which
658
 
&quot;includes&quot; other tag files. [Available only in
 
502
option must appear before the first file name.</p></td>
 
503
</table>
 
504
 
 
505
 
 
506
<p style="margin-left:11%;"><b>&minus;&minus;append</b>[=<i>yes</i>|<i>no</i>]</p>
 
507
 
 
508
<p style="margin-left:18%;">Indicates whether tags
 
509
generated from the specified files should be appended to
 
510
those already present in the tag file or should replace
 
511
them. This option is off by default. This option must appear
 
512
before the first file name.</p>
 
513
 
 
514
 
 
515
<p style="margin-left:11%;"><b>&minus;&minus;etags&minus;include</b>=<i>file</i></p>
 
516
 
 
517
<p style="margin-left:18%;">Include a reference to
 
518
<i>file</i> in the tag file. This option may be specified as
 
519
many times as desired. This supports Emacs&rsquo; capability
 
520
to use a tag file which &quot;includes&quot; other tag
 
521
files. [Available only in etags mode]</p>
 
522
 
 
523
 
 
524
<p style="margin-left:11%;"><b>&minus;&minus;exclude</b>=[<i>pattern</i>]</p>
 
525
 
 
526
<p style="margin-left:18%;">Add <i>pattern</i> to a list of
 
527
excluded files and directories. This option may be specified
 
528
as many times as desired. For each file name considered by
 
529
<b>ctags</b>, each <i>pattern</i> specified using this
 
530
option will be compared against both the complete path (e.g.
 
531
some/path/base.ext) and the base name (e.g. base.ext) of the
 
532
file, thus allowing patterns which match a given file name
 
533
irrespective of its path, or match only a specific path. If
 
534
appropriate support is available from the runtime library of
 
535
your C compiler, then <i>pattern</i> may contain the usual
 
536
shell wildcards (not regular expressions) common on Unix (be
 
537
sure to quote the option parameter to protect the wildcards
 
538
from being expanded by the shell before being passed to
 
539
<b>ctags</b>; also be aware that wildcards can match the
 
540
slash character, &rsquo;/&rsquo;). You can determine if
 
541
shell wildcards are available on your platform by examining
 
542
the output of the <b>&minus;&minus;version</b> option, which
 
543
will include &quot;+wildcards&quot; in the compiled feature
 
544
list; otherwise, <i>pattern</i> is matched against file
 
545
names using a simple textual comparison.</p>
 
546
 
 
547
<p style="margin-left:18%; margin-top: 1em">If
 
548
<i>pattern</i> begins with the character &rsquo;@&rsquo;,
 
549
then the rest of the string is interpreted as a file name
 
550
from which to read exclusion patterns, one per line. If
 
551
<i>pattern</i> is empty, the list of excluded patterns is
 
552
cleared. Note that at program startup, the default exclude
 
553
list contains &quot;EIFGEN&quot;, &quot;SCCS&quot;,
 
554
&quot;RCS&quot;, and &quot;CVS&quot;, which are names of
 
555
directories for which it is generally not desirable to
 
556
descend while processing the <b>&minus;&minus;recurse</b>
 
557
option.</p>
 
558
 
 
559
 
 
560
<p style="margin-left:11%;"><b>&minus;&minus;excmd</b>=<i>type</i></p>
 
561
 
 
562
<p style="margin-left:18%;">Determines the type of EX
 
563
command used to locate tags in the source file. [Ignored in
659
564
etags mode]</p>
660
 
</td>
661
 
</table>
662
 
<!-- INDENTATION -->
663
 
<table width="100%" border=0 rules="none" frame="void"
664
 
       cols="2" cellspacing="0" cellpadding="0">
665
 
<tr valign="top" align="left">
666
 
<td width="11%"></td>
667
 
<td width="89%">
668
 
<p><b>&minus;&minus;exclude</b>=[<i>pattern</i>]</p></td>
669
 
</table>
670
 
<!-- INDENTATION -->
671
 
<table width="100%" border=0 rules="none" frame="void"
672
 
       cols="2" cellspacing="0" cellpadding="0">
673
 
<tr valign="top" align="left">
674
 
<td width="18%"></td>
675
 
<td width="82%">
676
 
<p>Add <i>pattern</i> to a list of excluded files and
677
 
directories. This option may be specified as many times as
678
 
desired. For each file name considered by <b>ctags</b>, each
679
 
<i>pattern</i> specified using this option will be compared
680
 
against both the complete path (e.g. some/path/base.ext) and
681
 
the base name (e.g. base.ext) of the file, thus allowing
682
 
patterns which match a given file name irrespective of its
683
 
path, or match only a specific path. If appropriate support
684
 
is available from the runtime library of your C compiler,
685
 
then <i>pattern</i> may contain the usual shell wildcards
686
 
(not regular expressions) common on Unix (be sure to quote
687
 
the option parameter to protect the wildcards from being
688
 
expanded by the shell before being passed to <b>ctags</b>;
689
 
also be aware that wildcards can match the slash character,
690
 
&rsquo;/&rsquo;). You can determine if shell wildcards are
691
 
available on your platform by examining the output of the
692
 
<b>&minus;&minus;version</b> option, which will include
693
 
&quot;+wildcards&quot; in the compiled feature list;
694
 
otherwise, <i>pattern</i> is matched against file names
695
 
using a simple textual comparison.</p>
696
 
<!-- INDENTATION -->
697
 
<p>If <i>pattern</i> begins with the character
698
 
&rsquo;@&rsquo;, then the rest of the string is interpreted
699
 
as a file name from which to read exclusion patterns, one
700
 
per line. If <i>pattern</i> is empty, the list of excluded
701
 
patterns is cleared. Note that at program startup, the
702
 
default exclude list contains &quot;EIFGEN&quot;,
703
 
&quot;SCCS&quot;, &quot;RCS&quot;, and &quot;CVS&quot;,
704
 
which are names of directories for which it is generally not
705
 
desirable to descend while processing the
706
 
<b>&minus;&minus;recurse</b> option.</p>
707
 
</td>
708
 
</table>
709
 
<!-- INDENTATION -->
710
 
<table width="100%" border=0 rules="none" frame="void"
711
 
       cols="2" cellspacing="0" cellpadding="0">
712
 
<tr valign="top" align="left">
713
 
<td width="11%"></td>
714
 
<td width="89%">
715
 
<p><b>&minus;&minus;excmd</b>=<i>type</i></p></td>
716
 
</table>
717
 
<!-- INDENTATION -->
718
 
<table width="100%" border=0 rules="none" frame="void"
719
 
       cols="2" cellspacing="0" cellpadding="0">
720
 
<tr valign="top" align="left">
721
 
<td width="18%"></td>
722
 
<td width="82%">
723
 
<p>Determines the type of EX command used to locate tags in
724
 
the source file. [Ignored in etags mode]</p>
725
 
<!-- INDENTATION -->
726
 
<p>The valid values for <i>type</i> (either the entire word
727
 
or the first letter is accepted) are:</p>
728
 
</td>
729
 
</table>
730
 
<!-- TABS -->
731
 
<table width="100%" border=0 rules="none" frame="void"
732
 
       cols="4" cellspacing="0" cellpadding="0">
 
565
 
 
566
<p style="margin-left:18%; margin-top: 1em">The valid
 
567
values for <i>type</i> (either the entire word or the first
 
568
letter is accepted) are:</p>
 
569
 
 
570
<table width="100%" border=0 rules="none" frame="void"
 
571
       cellspacing="0" cellpadding="0">
733
572
<tr valign="top" align="left">
734
573
<td width="18%"></td>
735
574
<td width="10%">
736
575
 
737
 
<p><i>number</i></p>
738
 
</td>
 
576
 
 
577
<p style="margin-top: 1em" valign="top"><i>number</i></p></td>
739
578
<td width="4%"></td>
740
579
<td width="68%">
741
580
 
742
 
<p>Use only line numbers in the tag file for locating tags.
743
 
This has four advantages:</p>
744
 
</td>
745
 
</table>
746
 
<!-- TABS -->
747
 
<table width="100%" border=0 rules="none" frame="void"
748
 
       cols="4" cellspacing="0" cellpadding="0">
749
 
<tr valign="top" align="left">
750
 
<td width="32%"></td>
751
 
<td width="3%">
752
 
 
753
 
<p>1.</p>
754
 
</td>
755
 
<td width="3%"></td>
756
 
<td width="62%">
757
 
 
758
 
<p>Significantly reduces the size of the resulting tag
759
 
file.</p>
760
 
</td>
761
 
<tr valign="top" align="left">
762
 
<td width="32%"></td>
763
 
<td width="3%">
764
 
 
765
 
<p>2.</p>
766
 
</td>
767
 
<td width="3%"></td>
768
 
<td width="62%">
769
 
 
770
 
<p>Eliminates failures to find tags because the line
771
 
defining the tag has changed, causing the pattern match to
772
 
fail (note that some editors, such as <b>vim</b>, are able
773
 
to recover in many such instances).</p>
774
 
</td>
775
 
<tr valign="top" align="left">
776
 
<td width="32%"></td>
777
 
<td width="3%">
778
 
 
779
 
<p>3.</p>
780
 
</td>
781
 
<td width="3%"></td>
782
 
<td width="62%">
783
 
 
784
 
<p>Eliminates finding identical matching, but incorrect,
785
 
source lines (see <b>BUGS</b>, below).</p>
786
 
</td>
787
 
<tr valign="top" align="left">
788
 
<td width="32%"></td>
789
 
<td width="3%">
790
 
 
791
 
<p>4.</p>
792
 
</td>
793
 
<td width="3%"></td>
794
 
<td width="62%">
795
 
 
796
 
<p>Retains separate entries in the tag file for lines which
797
 
are identical in content. In <i>pattern</i> mode, duplicate
798
 
entries are dropped because the search patterns they
799
 
generate are identical, making the duplicate entries
800
 
useless.</p>
801
 
</td>
802
 
</table>
803
 
<!-- INDENTATION -->
804
 
<table width="100%" border=0 rules="none" frame="void"
805
 
       cols="2" cellspacing="0" cellpadding="0">
806
 
<tr valign="top" align="left">
807
 
<td width="32%"></td>
808
 
<td width="68%">
809
 
<p>However, this option has one significant drawback:
810
 
changes to the source files can cause the line numbers
811
 
recorded in the tag file to no longer correspond to the
812
 
lines in the source file, causing jumps to some tags to miss
813
 
the target definition by one or more lines. Basically, this
814
 
option is best used when the source code to which it is
815
 
applied is not subject to change. Selecting this option type
816
 
causes the following options to be ignored:
817
 
<b>&minus;BF</b>.</p>
818
 
</td>
819
 
</table>
820
 
<!-- TABS -->
821
 
<table width="100%" border=0 rules="none" frame="void"
822
 
       cols="4" cellspacing="0" cellpadding="0">
823
 
<tr valign="top" align="left">
824
 
<td width="18%"></td>
825
 
<td width="11%">
826
 
 
827
 
<p><i>pattern</i></p>
828
 
</td>
829
 
<td width="3%"></td>
830
 
<td width="68%">
831
 
 
832
 
<p>Use only search patterns for all tags, rather than the
833
 
line numbers usually used for macro definitions. This has
834
 
the advantage of not referencing obsolete line numbers when
835
 
lines have been added or removed since the tag file was
836
 
generated.</p>
837
 
</td>
838
 
<tr valign="top" align="left">
839
 
<td width="18%"></td>
840
 
<td width="11%">
841
 
 
842
 
<p><i>mixed</i></p>
843
 
</td>
844
 
<td width="3%"></td>
845
 
<td width="68%">
 
581
 
 
582
<p style="margin-top: 1em" valign="top">Use only line
 
583
numbers in the tag file for locating tags. This has four
 
584
advantages:</p> </td>
 
585
</table>
 
586
 
 
587
<table width="100%" border=0 rules="none" frame="void"
 
588
       cellspacing="0" cellpadding="0">
 
589
<tr valign="top" align="left">
 
590
<td width="32%"></td>
 
591
<td width="3%">
 
592
 
 
593
 
 
594
<p valign="top">1.</p></td>
 
595
<td width="3%"></td>
 
596
<td width="62%">
 
597
 
 
598
 
 
599
<p valign="top">Significantly reduces the size of the
 
600
resulting tag file.</p></td>
 
601
<tr valign="top" align="left">
 
602
<td width="32%"></td>
 
603
<td width="3%">
 
604
 
 
605
 
 
606
<p valign="top">2.</p></td>
 
607
<td width="3%"></td>
 
608
<td width="62%">
 
609
 
 
610
 
 
611
<p valign="top">Eliminates failures to find tags because
 
612
the line defining the tag has changed, causing the pattern
 
613
match to fail (note that some editors, such as <b>vim</b>,
 
614
are able to recover in many such instances).</p></td>
 
615
<tr valign="top" align="left">
 
616
<td width="32%"></td>
 
617
<td width="3%">
 
618
 
 
619
 
 
620
<p valign="top">3.</p></td>
 
621
<td width="3%"></td>
 
622
<td width="62%">
 
623
 
 
624
 
 
625
<p valign="top">Eliminates finding identical matching, but
 
626
incorrect, source lines (see <b>BUGS</b>, below).</p></td>
 
627
<tr valign="top" align="left">
 
628
<td width="32%"></td>
 
629
<td width="3%">
 
630
 
 
631
 
 
632
<p valign="top">4.</p></td>
 
633
<td width="3%"></td>
 
634
<td width="62%">
 
635
 
 
636
 
 
637
<p valign="top">Retains separate entries in the tag file
 
638
for lines which are identical in content. In <i>pattern</i>
 
639
mode, duplicate entries are dropped because the search
 
640
patterns they generate are identical, making the duplicate
 
641
entries useless.</p></td>
 
642
</table>
 
643
 
 
644
<p style="margin-left:32%; margin-top: 1em">However, this
 
645
option has one significant drawback: changes to the source
 
646
files can cause the line numbers recorded in the tag file to
 
647
no longer correspond to the lines in the source file,
 
648
causing jumps to some tags to miss the target definition by
 
649
one or more lines. Basically, this option is best used when
 
650
the source code to which it is applied is not subject to
 
651
change. Selecting this option type causes the following
 
652
options to be ignored: <b>&minus;BF</b>.</p>
 
653
 
 
654
<table width="100%" border=0 rules="none" frame="void"
 
655
       cellspacing="0" cellpadding="0">
 
656
<tr valign="top" align="left">
 
657
<td width="18%"></td>
 
658
<td width="11%">
 
659
 
 
660
 
 
661
<p style="margin-top: 1em" valign="top"><i>pattern</i></p></td>
 
662
<td width="3%"></td>
 
663
<td width="68%">
 
664
 
 
665
 
 
666
<p style="margin-top: 1em" valign="top">Use only search
 
667
patterns for all tags, rather than the line numbers usually
 
668
used for macro definitions. This has the advantage of not
 
669
referencing obsolete line numbers when lines have been added
 
670
or removed since the tag file was generated.</p></td>
 
671
<tr valign="top" align="left">
 
672
<td width="18%"></td>
 
673
<td width="11%">
 
674
 
 
675
 
 
676
<p><i>mixed</i></p></td>
 
677
<td width="3%"></td>
 
678
<td width="68%">
 
679
 
846
680
 
847
681
<p>In this mode, patterns are generally used with a few
848
682
exceptions. For C, line numbers are used for macro
851
685
default for this option. For Fortran, line numbers are used
852
686
for common blocks because their corresponding source lines
853
687
are generally identical, making pattern searches useless for
854
 
finding all matches.</p>
855
 
</td>
856
 
</table>
857
 
<!-- INDENTATION -->
858
 
<table width="100%" border=0 rules="none" frame="void"
859
 
       cols="2" cellspacing="0" cellpadding="0">
860
 
<tr valign="top" align="left">
861
 
<td width="11%"></td>
862
 
<td width="89%">
863
 
 
864
 
<p><b>&minus;&minus;extra</b>=<i>[+|&minus;]flags</i></p></td>
865
 
</table>
866
 
<!-- INDENTATION -->
867
 
<table width="100%" border=0 rules="none" frame="void"
868
 
       cols="2" cellspacing="0" cellpadding="0">
869
 
<tr valign="top" align="left">
870
 
<td width="18%"></td>
871
 
<td width="82%">
872
 
<p>Specifies whether to include extra tag entries for
873
 
certain kinds of information. The parameter <i>flags</i> is
874
 
a set of one-letter flags, each representing one kind of
875
 
extra tag entry to include in the tag file. If <i>flags</i>
876
 
is preceded by by either the &rsquo;+&rsquo; or
877
 
&rsquo;&minus;&rsquo; character, the effect of each flag is
878
 
added to, or removed from, those currently enabled;
879
 
otherwise the flags replace any current settings. The
880
 
meaning of each flag is as follows:</p>
881
 
</td>
882
 
</table>
883
 
<!-- TABS -->
884
 
<table width="100%" border=0 rules="none" frame="void"
885
 
       cols="4" cellspacing="0" cellpadding="0">
886
 
<tr valign="top" align="left">
887
 
<td width="23%"></td>
888
 
<td width="2%">
889
 
 
890
 
<p><i>f</i></p>
891
 
</td>
892
 
<td width="4%"></td>
893
 
<td width="71%">
894
 
 
895
 
<p>Include an entry for the base file name of every source
896
 
file (e.g. &quot;example.c&quot;), which addresses the first
897
 
line of the file.</p>
898
 
</td>
899
 
<tr valign="top" align="left">
900
 
<td width="23%"></td>
901
 
<td width="2%">
902
 
 
903
 
<p><i>q</i></p>
904
 
</td>
905
 
<td width="4%"></td>
906
 
<td width="71%">
907
 
 
908
 
<p>Include an extra class-qualified tag entry for each tag
909
 
which is a member of a class (for languages for which this
910
 
information is extracted; currently C++, Eiffel, and Java).
911
 
The actual form of the qualified tag depends upon the
912
 
language from which the tag was derived (using a form that
913
 
is most natural for how qualified calls are specified in the
914
 
language). For C++, it is in the form
915
 
&quot;class::member&quot;; for Eiffel and Java, it is in the
916
 
form &quot;class.member&quot;. This may allow easier
917
 
location of a specific tags when multiple occurrences of a
918
 
tag name occur in the tag file. Note, however, that this
919
 
could potentially more than double the size of the tag
920
 
file.</p>
921
 
</td>
922
 
</table>
923
 
<!-- INDENTATION -->
924
 
<table width="100%" border=0 rules="none" frame="void"
925
 
       cols="2" cellspacing="0" cellpadding="0">
926
 
<tr valign="top" align="left">
927
 
<td width="11%"></td>
928
 
<td width="89%">
929
 
 
930
 
<p><b>&minus;&minus;fields</b>=<i>[+|&minus;]flags</i></p></td>
931
 
</table>
932
 
<!-- INDENTATION -->
933
 
<table width="100%" border=0 rules="none" frame="void"
934
 
       cols="2" cellspacing="0" cellpadding="0">
935
 
<tr valign="top" align="left">
936
 
<td width="18%"></td>
937
 
<td width="82%">
938
 
<p>Specifies the available extension fields which are to be
939
 
included in the entries of the tag file (see <b>TAG FILE
940
 
FORMAT</b>, below, for more information). The parameter
941
 
<i>flags</i> is a set of one-letter flags, each representing
942
 
one type of extension field to include, with the following
943
 
meanings (disabled by default unless indicated):</p>
944
 
</td>
945
 
</table>
946
 
<!-- TABS -->
947
 
<table width="100%" border=0 rules="none" frame="void"
948
 
       cols="4" cellspacing="0" cellpadding="0">
949
 
<tr valign="top" align="left">
950
 
<td width="23%"></td>
951
 
<td width="2%">
952
 
 
953
 
<p><i>a</i></p>
954
 
</td>
955
 
<td width="4%"></td>
956
 
<td width="71%">
957
 
 
958
 
<p>Access (or export) of class members</p>
959
 
</td>
960
 
<tr valign="top" align="left">
961
 
<td width="23%"></td>
962
 
<td width="2%">
963
 
 
964
 
<p><i>f</i></p>
965
 
</td>
966
 
<td width="4%"></td>
967
 
<td width="71%">
968
 
 
969
 
<p>File-restricted scoping [enabled]</p>
970
 
</td>
971
 
<tr valign="top" align="left">
972
 
<td width="23%"></td>
973
 
<td width="2%">
974
 
 
975
 
<p><i>i</i></p>
976
 
</td>
977
 
<td width="4%"></td>
978
 
<td width="71%">
979
 
 
980
 
<p>Inheritance information</p>
981
 
</td>
982
 
<tr valign="top" align="left">
983
 
<td width="23%"></td>
984
 
<td width="2%">
985
 
 
986
 
<p><i>k</i></p>
987
 
</td>
988
 
<td width="4%"></td>
989
 
<td width="71%">
990
 
 
991
 
<p>Kind of tag as a single letter [enabled]</p>
992
 
</td>
993
 
<tr valign="top" align="left">
994
 
<td width="23%"></td>
995
 
<td width="2%">
996
 
 
997
 
<p><i>K</i></p>
998
 
</td>
999
 
<td width="4%"></td>
1000
 
<td width="71%">
1001
 
 
1002
 
<p>Kind of tag as full name</p>
1003
 
</td>
1004
 
<tr valign="top" align="left">
1005
 
<td width="23%"></td>
1006
 
<td width="2%">
1007
 
 
1008
 
<p><i>l</i></p>
1009
 
</td>
1010
 
<td width="4%"></td>
1011
 
<td width="71%">
1012
 
 
1013
 
<p>Language of source file containing tag</p>
1014
 
</td>
1015
 
<tr valign="top" align="left">
1016
 
<td width="23%"></td>
1017
 
<td width="2%">
1018
 
 
1019
 
<p><i>m</i></p>
1020
 
</td>
1021
 
<td width="4%"></td>
1022
 
<td width="71%">
1023
 
 
1024
 
<p>Implementation information</p>
1025
 
</td>
1026
 
<tr valign="top" align="left">
1027
 
<td width="23%"></td>
1028
 
<td width="2%">
1029
 
 
1030
 
<p><i>n</i></p>
1031
 
</td>
1032
 
<td width="4%"></td>
1033
 
<td width="71%">
1034
 
 
1035
 
<p>Line number of tag definition</p>
1036
 
</td>
1037
 
<tr valign="top" align="left">
1038
 
<td width="23%"></td>
1039
 
<td width="2%">
1040
 
 
1041
 
<p><i>s</i></p>
1042
 
</td>
1043
 
<td width="4%"></td>
1044
 
<td width="71%">
1045
 
 
1046
 
<p>Scope of tag definition [enabled]</p>
1047
 
</td>
1048
 
<tr valign="top" align="left">
1049
 
<td width="23%"></td>
1050
 
<td width="2%">
1051
 
 
1052
 
<p><i>S</i></p>
1053
 
</td>
1054
 
<td width="4%"></td>
1055
 
<td width="71%">
1056
 
 
1057
 
<p>Signature of routine (e.g. prototype or parameter
1058
 
list)</p>
1059
 
</td>
1060
 
<tr valign="top" align="left">
1061
 
<td width="23%"></td>
1062
 
<td width="2%">
1063
 
 
1064
 
<p><i>z</i></p>
1065
 
</td>
1066
 
<td width="4%"></td>
1067
 
<td width="71%">
1068
 
 
1069
 
<p>Include the &quot;kind:&quot; key in kind field</p>
1070
 
</td>
1071
 
<tr valign="top" align="left">
1072
 
<td width="23%"></td>
1073
 
<td width="2%">
1074
 
 
1075
 
<p><i>t</i></p>
1076
 
</td>
1077
 
<td width="4%"></td>
1078
 
<td width="71%">
1079
 
 
1080
 
<p>Type and name of a variable or typedef as
1081
 
&quot;typeref:&quot; field [enabled]</p>
1082
 
</td>
1083
 
</table>
1084
 
<!-- INDENTATION -->
1085
 
<table width="100%" border=0 rules="none" frame="void"
1086
 
       cols="2" cellspacing="0" cellpadding="0">
1087
 
<tr valign="top" align="left">
1088
 
<td width="18%"></td>
1089
 
<td width="82%">
1090
 
<p>Each letter or group of letters may be preceded by either
1091
 
&rsquo;+&rsquo; to add it to the default set, or
1092
 
&rsquo;&minus;&rsquo; to exclude it. In the absence of any
1093
 
preceding &rsquo;+&rsquo; or &rsquo;&minus;&rsquo; sign,
1094
 
only those kinds explicitly listed in <i>flags</i> will be
1095
 
included in the output (i.e. overriding the default set).
1096
 
This option is ignored if the option
1097
 
<b>&minus;&minus;format</b>=<i>1</i> has been specified. The
1098
 
default value of this option is <i>fks</i>.</p></td>
1099
 
</table>
1100
 
<!-- INDENTATION -->
1101
 
<table width="100%" border=0 rules="none" frame="void"
1102
 
       cols="2" cellspacing="0" cellpadding="0">
1103
 
<tr valign="top" align="left">
1104
 
<td width="11%"></td>
1105
 
<td width="89%">
1106
 
 
1107
 
<p><b>&minus;&minus;file&minus;scope</b>[=<i>yes</i>|<i>no</i>]</p></td>
1108
 
</table>
1109
 
<!-- INDENTATION -->
1110
 
<table width="100%" border=0 rules="none" frame="void"
1111
 
       cols="2" cellspacing="0" cellpadding="0">
1112
 
<tr valign="top" align="left">
1113
 
<td width="18%"></td>
1114
 
<td width="82%">
1115
 
<p>Indicates whether tags scoped only for a single file
1116
 
(i.e. tags which cannot be seen outside of the file in which
1117
 
they are defined, such as &quot;static&quot; tags) should be
1118
 
included in the output. See, also, the <b>&minus;h</b>
1119
 
option. This option is enabled by default.</p>
1120
 
</td>
1121
 
</table>
1122
 
<!-- INDENTATION -->
1123
 
<table width="100%" border=0 rules="none" frame="void"
1124
 
       cols="2" cellspacing="0" cellpadding="0">
1125
 
<tr valign="top" align="left">
1126
 
<td width="11%"></td>
1127
 
<td width="89%">
1128
 
 
1129
 
<p><b>&minus;&minus;filter</b>[=<i>yes</i>|<i>no</i>]</p></td>
1130
 
</table>
1131
 
<!-- INDENTATION -->
1132
 
<table width="100%" border=0 rules="none" frame="void"
1133
 
       cols="2" cellspacing="0" cellpadding="0">
1134
 
<tr valign="top" align="left">
1135
 
<td width="18%"></td>
1136
 
<td width="82%">
1137
 
<p>Causes <b>ctags</b> to behave as a filter, reading source
1138
 
file names from standard input and printing their tags to
1139
 
standard output on a file-by-file basis. If
1140
 
<b>&minus;&minus;sorted</b> is enabled, tags are sorted only
1141
 
within the source file in which they are defined. File names
1142
 
are read from standard input in line-oriented input mode
1143
 
(see note for <b>&minus;L</b> option) and only after file
1144
 
names listed on the command line or from any file supplied
1145
 
using the <b>&minus;L</b> option. When this option is
1146
 
enabled, the options <b>&minus;f</b>, <b>&minus;o</b>, and
1147
 
<b>&minus;&minus;totals</b> are ignored. This option is
1148
 
quite esoteric and is disabled by default. This option must
1149
 
appear before the first file name.</p>
1150
 
</td>
1151
 
</table>
1152
 
<!-- INDENTATION -->
1153
 
<table width="100%" border=0 rules="none" frame="void"
1154
 
       cols="2" cellspacing="0" cellpadding="0">
1155
 
<tr valign="top" align="left">
1156
 
<td width="11%"></td>
1157
 
<td width="89%">
1158
 
 
1159
 
<p><b>&minus;&minus;filter&minus;terminator</b>=<i>string</i></p></td>
1160
 
</table>
1161
 
<!-- INDENTATION -->
1162
 
<table width="100%" border=0 rules="none" frame="void"
1163
 
       cols="2" cellspacing="0" cellpadding="0">
1164
 
<tr valign="top" align="left">
1165
 
<td width="18%"></td>
1166
 
<td width="82%">
1167
 
<p>Specifies a string to print to standard output following
1168
 
the tags for each file name parsed when the
1169
 
<b>&minus;&minus;filter</b> option is enabled. This may
1170
 
permit an application reading the output of ctags to
 
688
finding all matches.</p></td>
 
689
</table>
 
690
 
 
691
 
 
692
<p style="margin-left:11%;"><b>&minus;&minus;extra</b>=<i>[+|&minus;]flags</i></p>
 
693
 
 
694
<p style="margin-left:18%;">Specifies whether to include
 
695
extra tag entries for certain kinds of information. The
 
696
parameter <i>flags</i> is a set of one-letter flags, each
 
697
representing one kind of extra tag entry to include in the
 
698
tag file. If <i>flags</i> is preceded by by either the
 
699
&rsquo;+&rsquo; or &rsquo;&minus;&rsquo; character, the
 
700
effect of each flag is added to, or removed from, those
 
701
currently enabled; otherwise the flags replace any current
 
702
settings. The meaning of each flag is as follows:</p>
 
703
 
 
704
<table width="100%" border=0 rules="none" frame="void"
 
705
       cellspacing="0" cellpadding="0">
 
706
<tr valign="top" align="left">
 
707
<td width="23%"></td>
 
708
<td width="2%">
 
709
 
 
710
 
 
711
<p style="margin-top: 1em" valign="top"><i>f</i></p></td>
 
712
<td width="4%"></td>
 
713
<td width="71%">
 
714
 
 
715
 
 
716
<p style="margin-top: 1em" valign="top">Include an entry
 
717
for the base file name of every source file (e.g.
 
718
&quot;example.c&quot;), which addresses the first line of
 
719
the file.</p></td>
 
720
<tr valign="top" align="left">
 
721
<td width="23%"></td>
 
722
<td width="2%">
 
723
 
 
724
 
 
725
<p style="margin-top: 1em" valign="top"><i>q</i></p></td>
 
726
<td width="4%"></td>
 
727
<td width="71%">
 
728
 
 
729
 
 
730
<p style="margin-top: 1em" valign="top">Include an extra
 
731
class-qualified tag entry for each tag which is a member of
 
732
a class (for languages for which this information is
 
733
extracted; currently C++, Eiffel, and Java). The actual form
 
734
of the qualified tag depends upon the language from which
 
735
the tag was derived (using a form that is most natural for
 
736
how qualified calls are specified in the language). For C++,
 
737
it is in the form &quot;class::member&quot;; for Eiffel and
 
738
Java, it is in the form &quot;class.member&quot;. This may
 
739
allow easier location of a specific tags when multiple
 
740
occurrences of a tag name occur in the tag file. Note,
 
741
however, that this could potentially more than double the
 
742
size of the tag file.</p></td>
 
743
</table>
 
744
 
 
745
 
 
746
<p style="margin-left:11%;"><b>&minus;&minus;fields</b>=<i>[+|&minus;]flags</i></p>
 
747
 
 
748
<p style="margin-left:18%;">Specifies the available
 
749
extension fields which are to be included in the entries of
 
750
the tag file (see <b>TAG FILE FORMAT</b>, below, for more
 
751
information). The parameter <i>flags</i> is a set of
 
752
one-letter flags, each representing one type of extension
 
753
field to include, with the following meanings (disabled by
 
754
default unless indicated):</p>
 
755
 
 
756
<table width="100%" border=0 rules="none" frame="void"
 
757
       cellspacing="0" cellpadding="0">
 
758
<tr valign="top" align="left">
 
759
<td width="23%"></td>
 
760
<td width="2%">
 
761
 
 
762
 
 
763
<p style="margin-top: 1em" valign="top"><i>a</i></p></td>
 
764
<td width="4%"></td>
 
765
<td width="71%">
 
766
 
 
767
 
 
768
<p style="margin-top: 1em" valign="top">Access (or export)
 
769
of class members</p></td>
 
770
<tr valign="top" align="left">
 
771
<td width="23%"></td>
 
772
<td width="2%">
 
773
 
 
774
 
 
775
<p valign="top"><i>f</i></p></td>
 
776
<td width="4%"></td>
 
777
<td width="71%">
 
778
 
 
779
 
 
780
<p valign="top">File-restricted scoping [enabled]</p></td>
 
781
<tr valign="top" align="left">
 
782
<td width="23%"></td>
 
783
<td width="2%">
 
784
 
 
785
 
 
786
<p valign="top"><i>i</i></p></td>
 
787
<td width="4%"></td>
 
788
<td width="71%">
 
789
 
 
790
 
 
791
<p valign="top">Inheritance information</p></td>
 
792
<tr valign="top" align="left">
 
793
<td width="23%"></td>
 
794
<td width="2%">
 
795
 
 
796
 
 
797
<p valign="top"><i>k</i></p></td>
 
798
<td width="4%"></td>
 
799
<td width="71%">
 
800
 
 
801
 
 
802
<p valign="top">Kind of tag as a single letter
 
803
[enabled]</p> </td>
 
804
<tr valign="top" align="left">
 
805
<td width="23%"></td>
 
806
<td width="2%">
 
807
 
 
808
 
 
809
<p valign="top"><i>K</i></p></td>
 
810
<td width="4%"></td>
 
811
<td width="71%">
 
812
 
 
813
 
 
814
<p valign="top">Kind of tag as full name</p></td>
 
815
<tr valign="top" align="left">
 
816
<td width="23%"></td>
 
817
<td width="2%">
 
818
 
 
819
 
 
820
<p valign="top"><i>l</i></p></td>
 
821
<td width="4%"></td>
 
822
<td width="71%">
 
823
 
 
824
 
 
825
<p valign="top">Language of source file containing tag</p></td>
 
826
<tr valign="top" align="left">
 
827
<td width="23%"></td>
 
828
<td width="2%">
 
829
 
 
830
 
 
831
<p valign="top"><i>m</i></p></td>
 
832
<td width="4%"></td>
 
833
<td width="71%">
 
834
 
 
835
 
 
836
<p valign="top">Implementation information</p></td>
 
837
<tr valign="top" align="left">
 
838
<td width="23%"></td>
 
839
<td width="2%">
 
840
 
 
841
 
 
842
<p valign="top"><i>n</i></p></td>
 
843
<td width="4%"></td>
 
844
<td width="71%">
 
845
 
 
846
 
 
847
<p valign="top">Line number of tag definition</p></td>
 
848
<tr valign="top" align="left">
 
849
<td width="23%"></td>
 
850
<td width="2%">
 
851
 
 
852
 
 
853
<p valign="top"><i>s</i></p></td>
 
854
<td width="4%"></td>
 
855
<td width="71%">
 
856
 
 
857
 
 
858
<p valign="top">Scope of tag definition [enabled]</p></td>
 
859
<tr valign="top" align="left">
 
860
<td width="23%"></td>
 
861
<td width="2%">
 
862
 
 
863
 
 
864
<p valign="top"><i>S</i></p></td>
 
865
<td width="4%"></td>
 
866
<td width="71%">
 
867
 
 
868
 
 
869
<p valign="top">Signature of routine (e.g. prototype or
 
870
parameter list)</p></td>
 
871
<tr valign="top" align="left">
 
872
<td width="23%"></td>
 
873
<td width="2%">
 
874
 
 
875
 
 
876
<p valign="top"><i>z</i></p></td>
 
877
<td width="4%"></td>
 
878
<td width="71%">
 
879
 
 
880
 
 
881
<p valign="top">Include the &quot;kind:&quot; key in kind
 
882
field</p> </td>
 
883
<tr valign="top" align="left">
 
884
<td width="23%"></td>
 
885
<td width="2%">
 
886
 
 
887
 
 
888
<p valign="top"><i>t</i></p></td>
 
889
<td width="4%"></td>
 
890
<td width="71%">
 
891
 
 
892
 
 
893
<p valign="top">Type and name of a variable or typedef as
 
894
&quot;typeref:&quot; field [enabled]</p></td>
 
895
</table>
 
896
 
 
897
<p style="margin-left:18%; margin-top: 1em">Each letter or
 
898
group of letters may be preceded by either &rsquo;+&rsquo;
 
899
to add it to the default set, or &rsquo;&minus;&rsquo; to
 
900
exclude it. In the absence of any preceding &rsquo;+&rsquo;
 
901
or &rsquo;&minus;&rsquo; sign, only those kinds explicitly
 
902
listed in <i>flags</i> will be included in the output (i.e.
 
903
overriding the default set). This option is ignored if the
 
904
option <b>&minus;&minus;format</b>=<i>1</i> has been
 
905
specified. The default value of this option is
 
906
<i>fkst</i>.</p>
 
907
 
 
908
 
 
909
<p style="margin-left:11%;"><b>&minus;&minus;file&minus;scope</b>[=<i>yes</i>|<i>no</i>]</p>
 
910
 
 
911
<p style="margin-left:18%;">Indicates whether tags scoped
 
912
only for a single file (i.e. tags which cannot be seen
 
913
outside of the file in which they are defined, such as
 
914
&quot;static&quot; tags) should be included in the output.
 
915
See, also, the <b>&minus;h</b> option. This option is
 
916
enabled by default.</p>
 
917
 
 
918
 
 
919
<p style="margin-left:11%;"><b>&minus;&minus;filter</b>[=<i>yes</i>|<i>no</i>]</p>
 
920
 
 
921
<p style="margin-left:18%;">Causes <b>ctags</b> to behave
 
922
as a filter, reading source file names from standard input
 
923
and printing their tags to standard output on a file-by-file
 
924
basis. If <b>&minus;&minus;sorted</b> is enabled, tags are
 
925
sorted only within the source file in which they are
 
926
defined. File names are read from standard input in
 
927
line-oriented input mode (see note for <b>&minus;L</b>
 
928
option) and only after file names listed on the command line
 
929
or from any file supplied using the <b>&minus;L</b> option.
 
930
When this option is enabled, the options <b>&minus;f</b>,
 
931
<b>&minus;o</b>, and <b>&minus;&minus;totals</b> are
 
932
ignored. This option is quite esoteric and is disabled by
 
933
default. This option must appear before the first file
 
934
name.</p>
 
935
 
 
936
 
 
937
<p style="margin-left:11%;"><b>&minus;&minus;filter&minus;terminator</b>=<i>string</i></p>
 
938
 
 
939
<p style="margin-left:18%;">Specifies a string to print to
 
940
standard output following the tags for each file name parsed
 
941
when the <b>&minus;&minus;filter</b> option is enabled. This
 
942
may permit an application reading the output of ctags to
1171
943
determine when the output for each file is finished. Note
1172
944
that if the file name read is a directory and
1173
945
<b>&minus;&minus;recurse</b> is enabled, this string will be
1177
949
terminating newline. This option is quite esoteric and is
1178
950
empty by default. This option must appear before the first
1179
951
file name.</p>
1180
 
</td>
1181
 
</table>
1182
 
<!-- INDENTATION -->
1183
 
<table width="100%" border=0 rules="none" frame="void"
1184
 
       cols="2" cellspacing="0" cellpadding="0">
1185
 
<tr valign="top" align="left">
1186
 
<td width="11%"></td>
1187
 
<td width="89%">
1188
 
<p><b>&minus;&minus;format</b>=<i>level</i></p></td>
1189
 
</table>
1190
 
<!-- INDENTATION -->
1191
 
<table width="100%" border=0 rules="none" frame="void"
1192
 
       cols="2" cellspacing="0" cellpadding="0">
1193
 
<tr valign="top" align="left">
1194
 
<td width="18%"></td>
1195
 
<td width="82%">
1196
 
<p>Change the format of the output tag file. Currently the
1197
 
only valid values for <i>level</i> are <i>1</i> or <i>2</i>.
1198
 
Level 1 specifies the original tag file format and level 2
1199
 
specifies a new extended format containing extension fields
1200
 
(but in a manner which retains backward-compatibility with
1201
 
original <b>vi</b>(1) implementations). The default level is
1202
 
2. This option must appear before the first file name.
1203
 
[Ignored in etags mode]</p>
1204
 
</td>
1205
 
</table>
1206
 
<!-- INDENTATION -->
1207
 
<table width="100%" border=0 rules="none" frame="void"
1208
 
       cols="2" cellspacing="0" cellpadding="0">
1209
 
<tr valign="top" align="left">
1210
 
<td width="11%"></td>
1211
 
<td width="89%">
1212
 
<p><b>&minus;&minus;help</b></p></td>
1213
 
</table>
1214
 
<!-- INDENTATION -->
1215
 
<table width="100%" border=0 rules="none" frame="void"
1216
 
       cols="2" cellspacing="0" cellpadding="0">
1217
 
<tr valign="top" align="left">
1218
 
<td width="18%"></td>
1219
 
<td width="82%">
1220
 
<p>Prints to standard output a detailed usage description,
1221
 
and then exits.</p>
1222
 
</td>
1223
 
</table>
1224
 
<!-- INDENTATION -->
1225
 
<table width="100%" border=0 rules="none" frame="void"
1226
 
       cols="2" cellspacing="0" cellpadding="0">
1227
 
<tr valign="top" align="left">
1228
 
<td width="11%"></td>
1229
 
<td width="89%">
1230
 
<p><b>&minus;&minus;if0</b>[=<i>yes</i>|<i>no</i>]</p></td>
1231
 
</table>
1232
 
<!-- INDENTATION -->
1233
 
<table width="100%" border=0 rules="none" frame="void"
1234
 
       cols="2" cellspacing="0" cellpadding="0">
1235
 
<tr valign="top" align="left">
1236
 
<td width="18%"></td>
1237
 
<td width="82%">
1238
 
<p>Indicates a preference as to whether code within an
1239
 
&quot;#if 0&quot; branch of a preprocessor conditional
1240
 
should be examined for non-macro tags (macro tags are always
1241
 
included). Because the intent of this construct is to
1242
 
disable code, the default value of this option is <i>no</i>.
1243
 
Note that this indicates a preference only and does not
1244
 
guarantee skipping code within an &quot;#if 0&quot; branch,
1245
 
since the fall-back algorithm used to generate tags when
1246
 
preprocessor conditionals are too complex follows all
1247
 
branches of a conditional. This option is disabled by
1248
 
default.</p>
1249
 
</td>
1250
 
</table>
1251
 
<!-- INDENTATION -->
1252
 
<table width="100%" border=0 rules="none" frame="void"
1253
 
       cols="2" cellspacing="0" cellpadding="0">
1254
 
<tr valign="top" align="left">
1255
 
<td width="11%"></td>
1256
 
<td width="89%">
1257
 
 
1258
 
<p><b>&minus;&minus;&lt;LANG&gt;&minus;kinds</b>=<i>[+|&minus;]kinds</i></p></td>
1259
 
</table>
1260
 
<!-- INDENTATION -->
1261
 
<table width="100%" border=0 rules="none" frame="void"
1262
 
       cols="2" cellspacing="0" cellpadding="0">
1263
 
<tr valign="top" align="left">
1264
 
<td width="18%"></td>
1265
 
<td width="82%">
1266
 
<p>Specifies a list of language-specific kinds of tags (or
1267
 
kinds) to include in the output file for a particular
1268
 
language, where <b>&lt;LANG&gt;</b> is case-insensitive and
1269
 
is one of the built-in language names (see the
 
952
 
 
953
 
 
954
<p style="margin-left:11%;"><b>&minus;&minus;format</b>=<i>level</i></p>
 
955
 
 
956
<p style="margin-left:18%;">Change the format of the output
 
957
tag file. Currently the only valid values for <i>level</i>
 
958
are <i>1</i> or <i>2</i>. Level 1 specifies the original tag
 
959
file format and level 2 specifies a new extended format
 
960
containing extension fields (but in a manner which retains
 
961
backward-compatibility with original <b>vi</b>(1)
 
962
implementations). The default level is 2. This option must
 
963
appear before the first file name. [Ignored in etags
 
964
mode]</p>
 
965
 
 
966
<p style="margin-left:11%;"><b>&minus;&minus;help</b></p>
 
967
 
 
968
<p style="margin-left:18%;">Prints to standard output a
 
969
detailed usage description, and then exits.</p>
 
970
 
 
971
 
 
972
<p style="margin-left:11%;"><b>&minus;&minus;if0</b>[=<i>yes</i>|<i>no</i>]</p>
 
973
 
 
974
<p style="margin-left:18%;">Indicates a preference as to
 
975
whether code within an &quot;#if 0&quot; branch of a
 
976
preprocessor conditional should be examined for non-macro
 
977
tags (macro tags are always included). Because the intent of
 
978
this construct is to disable code, the default value of this
 
979
option is <i>no</i>. Note that this indicates a preference
 
980
only and does not guarantee skipping code within an
 
981
&quot;#if 0&quot; branch, since the fall-back algorithm used
 
982
to generate tags when preprocessor conditionals are too
 
983
complex follows all branches of a conditional. This option
 
984
is disabled by default.</p>
 
985
 
 
986
 
 
987
<p style="margin-left:11%;"><b>&minus;&minus;&lt;LANG&gt;&minus;kinds</b>=<i>[+|&minus;]kinds</i></p>
 
988
 
 
989
<p style="margin-left:18%;">Specifies a list of
 
990
language-specific kinds of tags (or kinds) to include in the
 
991
output file for a particular language, where
 
992
<b>&lt;LANG&gt;</b> is case-insensitive and is one of the
 
993
built-in language names (see the
1270
994
<b>&minus;&minus;list&minus;languages</b> option for a
1271
995
complete list). The parameter <i>kinds</i> is a group of
1272
996
one-letter flags designating kinds of tags (particular to
1281
1005
kinds explicitly listed in <i>kinds</i> will be included in
1282
1006
the output (i.e. overriding the default for the specified
1283
1007
language).</p>
1284
 
<!-- INDENTATION -->
1285
 
<p>As an example for the C language, in order to add
1286
 
prototypes and external variable declarations to the default
1287
 
set of tag kinds, but exclude macros, use
 
1008
 
 
1009
<p style="margin-left:18%; margin-top: 1em">As an example
 
1010
for the C language, in order to add prototypes and external
 
1011
variable declarations to the default set of tag kinds, but
 
1012
exclude macros, use
1288
1013
<b>&minus;&minus;c&minus;kinds</b>=<i>+px&minus;d</i>; to
1289
1014
include only tags for functions, use
1290
1015
<b>&minus;&minus;c&minus;kinds</b>=<i>f</i>.</p>
1291
 
</td>
1292
 
</table>
1293
 
<!-- INDENTATION -->
1294
 
<table width="100%" border=0 rules="none" frame="void"
1295
 
       cols="2" cellspacing="0" cellpadding="0">
1296
 
<tr valign="top" align="left">
1297
 
<td width="11%"></td>
1298
 
<td width="89%">
1299
 
<p><b>&minus;&minus;langdef</b>=<i>name</i></p></td>
1300
 
</table>
1301
 
<!-- INDENTATION -->
1302
 
<table width="100%" border=0 rules="none" frame="void"
1303
 
       cols="2" cellspacing="0" cellpadding="0">
1304
 
<tr valign="top" align="left">
1305
 
<td width="18%"></td>
1306
 
<td width="82%">
1307
 
<p>Defines a new user-defined language, <i>name</i>, to be
1308
 
parsed with regular expressions. Once defined, <i>name</i>
1309
 
may be used in other options taking language names. The
1310
 
typical use of this option is to first define the language,
1311
 
then map file names to it using
1312
 
<i>&minus;&minus;langmap</i>, then specify regular
1313
 
expressions using
 
1016
 
 
1017
 
 
1018
<p style="margin-left:11%;"><b>&minus;&minus;langdef</b>=<i>name</i></p>
 
1019
 
 
1020
<p style="margin-left:18%;">Defines a new user-defined
 
1021
language, <i>name</i>, to be parsed with regular
 
1022
expressions. Once defined, <i>name</i> may be used in other
 
1023
options taking language names. The typical use of this
 
1024
option is to first define the language, then map file names
 
1025
to it using <i>&minus;&minus;langmap</i>, then specify
 
1026
regular expressions using
1314
1027
<i>&minus;&minus;regex&minus;&lt;LANG&gt;</i> to define how
1315
1028
its tags are found.</p>
1316
 
</td>
1317
 
</table>
1318
 
<!-- INDENTATION -->
1319
 
<table width="100%" border=0 rules="none" frame="void"
1320
 
       cols="2" cellspacing="0" cellpadding="0">
1321
 
<tr valign="top" align="left">
1322
 
<td width="11%"></td>
1323
 
<td width="89%">
1324
 
 
1325
 
<p><b>&minus;&minus;langmap</b>=<i>map[,map[...]]</i></p></td>
1326
 
</table>
1327
 
<!-- INDENTATION -->
1328
 
<table width="100%" border=0 rules="none" frame="void"
1329
 
       cols="2" cellspacing="0" cellpadding="0">
1330
 
<tr valign="top" align="left">
1331
 
<td width="18%"></td>
1332
 
<td width="82%">
1333
 
<p>Controls how file names are mapped to languages (see the
 
1029
 
 
1030
 
 
1031
<p style="margin-left:11%;"><b>&minus;&minus;langmap</b>=<i>map[,map[...]]</i></p>
 
1032
 
 
1033
<p style="margin-left:18%;">Controls how file names are
 
1034
mapped to languages (see the
1334
1035
<b>&minus;&minus;list&minus;maps</b> option). Each
1335
1036
comma-separated <i>map</i> consists of the language name
1336
1037
(either a built-in or user-defined language), a colon, and a
1351
1052
file names using a simple textual comparison. When mapping a
1352
1053
file extension, it will first be unmapped from any other
1353
1054
languages.</p>
1354
 
<!-- INDENTATION -->
1355
 
<p>If the first character in a map is a plus sign, then the
1356
 
extensions and file name patterns in that map will be
1357
 
appended to the current map for that language; otherwise,
1358
 
the map will replace the current map. For example, to
1359
 
specify that only files with extensions of .c and .x are to
1360
 
be treated as C language files, use
 
1055
 
 
1056
<p style="margin-left:18%; margin-top: 1em">If the first
 
1057
character in a map is a plus sign, then the extensions and
 
1058
file name patterns in that map will be appended to the
 
1059
current map for that language; otherwise, the map will
 
1060
replace the current map. For example, to specify that only
 
1061
files with extensions of .c and .x are to be treated as C
 
1062
language files, use
1361
1063
&quot;<b>&minus;&minus;langmap</b>=<i>c:.c.x</i>&quot;; to
1362
1064
also add files with extensions of .j as Java language files,
1363
1065
specify
1381
1083
&quot;<b>&minus;&minus;langmap</b>=<i>default</i>&quot;.
1382
1084
Note that file extensions are tested before file name
1383
1085
patterns when inferring the language of a file.</p>
1384
 
</td>
1385
 
</table>
1386
 
<!-- INDENTATION -->
1387
 
<table width="100%" border=0 rules="none" frame="void"
1388
 
       cols="2" cellspacing="0" cellpadding="0">
1389
 
<tr valign="top" align="left">
1390
 
<td width="11%"></td>
1391
 
<td width="89%">
1392
 
 
1393
 
<p><b>&minus;&minus;language&minus;force</b>=<i>language</i></p></td>
1394
 
</table>
1395
 
<!-- INDENTATION -->
1396
 
<table width="100%" border=0 rules="none" frame="void"
1397
 
       cols="2" cellspacing="0" cellpadding="0">
1398
 
<tr valign="top" align="left">
1399
 
<td width="18%"></td>
1400
 
<td width="82%">
1401
 
<p>By default, <b>ctags</b> automatically selects the
1402
 
language of a source file, ignoring those files whose
1403
 
language cannot be determined (see <b>SOURCE FILES</b>,
1404
 
above). This option forces the specified <i>language</i>
1405
 
(case-insensitive; either built-in or user-defined) to be
1406
 
used for every supplied file instead of automatically
1407
 
selecting the language based upon its extension. In
1408
 
addition, the special value <i>auto</i> indicates that the
1409
 
language should be automatically selected (which effectively
1410
 
disables this option).</p>
1411
 
</td>
1412
 
</table>
1413
 
<!-- INDENTATION -->
1414
 
<table width="100%" border=0 rules="none" frame="void"
1415
 
       cols="2" cellspacing="0" cellpadding="0">
1416
 
<tr valign="top" align="left">
1417
 
<td width="11%"></td>
1418
 
<td width="89%">
1419
 
 
1420
 
<p><b>&minus;&minus;languages</b>=<i>[+|&minus;]list</i></p></td>
1421
 
</table>
1422
 
<!-- INDENTATION -->
1423
 
<table width="100%" border=0 rules="none" frame="void"
1424
 
       cols="2" cellspacing="0" cellpadding="0">
1425
 
<tr valign="top" align="left">
1426
 
<td width="18%"></td>
1427
 
<td width="82%">
1428
 
<p>Specifies the languages for which tag generation is
1429
 
enabled, with <i>list</i> containing a comma-separated list
1430
 
of language names (case-insensitive; either built-in or
1431
 
user-defined). If the first language of <i>list</i> is not
1432
 
preceded by either a &rsquo;+&rsquo; or
 
1086
 
 
1087
 
 
1088
<p style="margin-left:11%;"><b>&minus;&minus;language&minus;force</b>=<i>language</i></p>
 
1089
 
 
1090
<p style="margin-left:18%;">By default, <b>ctags</b>
 
1091
automatically selects the language of a source file,
 
1092
ignoring those files whose language cannot be determined
 
1093
(see <b>SOURCE FILES</b>, above). This option forces the
 
1094
specified <i>language</i> (case-insensitive; either built-in
 
1095
or user-defined) to be used for every supplied file instead
 
1096
of automatically selecting the language based upon its
 
1097
extension. In addition, the special value <i>auto</i>
 
1098
indicates that the language should be automatically selected
 
1099
(which effectively disables this option).</p>
 
1100
 
 
1101
 
 
1102
<p style="margin-left:11%;"><b>&minus;&minus;languages</b>=<i>[+|&minus;]list</i></p>
 
1103
 
 
1104
<p style="margin-left:18%;">Specifies the languages for
 
1105
which tag generation is enabled, with <i>list</i> containing
 
1106
a comma-separated list of language names (case-insensitive;
 
1107
either built-in or user-defined). If the first language of
 
1108
<i>list</i> is not preceded by either a &rsquo;+&rsquo; or
1433
1109
&rsquo;&minus;&rsquo;, the current list will be cleared
1434
1110
before adding or removing the languages in <i>list</i>.
1435
1111
Until a &rsquo;&minus;&rsquo; is encountered, each language
1450
1126
valid argument. See the
1451
1127
<b>&minus;&minus;list&minus;languages</b> option for a
1452
1128
complete list of the built-in language names.</p>
1453
 
</td>
1454
 
</table>
1455
 
<!-- INDENTATION -->
1456
 
<table width="100%" border=0 rules="none" frame="void"
1457
 
       cols="2" cellspacing="0" cellpadding="0">
1458
 
<tr valign="top" align="left">
1459
 
<td width="11%"></td>
1460
 
<td width="89%">
1461
 
<p><b>&minus;&minus;license</b></p></td>
1462
 
</table>
1463
 
<!-- INDENTATION -->
1464
 
<table width="100%" border=0 rules="none" frame="void"
1465
 
       cols="2" cellspacing="0" cellpadding="0">
1466
 
<tr valign="top" align="left">
1467
 
<td width="18%"></td>
1468
 
<td width="82%">
1469
 
<p>Prints a summary of the software license to standard
1470
 
output, and then exits.</p>
1471
 
</td>
1472
 
</table>
1473
 
<!-- INDENTATION -->
1474
 
<table width="100%" border=0 rules="none" frame="void"
1475
 
       cols="2" cellspacing="0" cellpadding="0">
1476
 
<tr valign="top" align="left">
1477
 
<td width="11%"></td>
1478
 
<td width="89%">
1479
 
 
1480
 
<p><b>&minus;&minus;line&minus;directives</b>[=<i>yes</i>|<i>no</i>]</p></td>
1481
 
</table>
1482
 
<!-- INDENTATION -->
1483
 
<table width="100%" border=0 rules="none" frame="void"
1484
 
       cols="2" cellspacing="0" cellpadding="0">
1485
 
<tr valign="top" align="left">
1486
 
<td width="18%"></td>
1487
 
<td width="82%">
1488
 
<p>Specifies whether &quot;#line&quot; directives should be
1489
 
recognized. These are present in the output of preprocessors
1490
 
and contain the line number, and possibly the file name, of
1491
 
the original source file(s) from which the preprocessor
1492
 
output file was generated. When enabled, this option will
1493
 
cause <b>ctags</b> to generate tag entries marked with the
1494
 
file names and line numbers of their locations original
1495
 
source file(s), instead of their actual locations in the
1496
 
preprocessor output. The actual file names placed into the
1497
 
tag file will have the same leading path components as the
1498
 
preprocessor output file, since it is assumed that the
1499
 
original source files are located relative to the
1500
 
preprocessor output file (unless, of course, the #line
1501
 
directive specifies an absolute path). This option is off by
1502
 
default. <b>Note:</b> This option is generally only useful
1503
 
when used together with the
 
1129
 
 
1130
 
 
1131
<p style="margin-left:11%;"><b>&minus;&minus;license</b></p>
 
1132
 
 
1133
<p style="margin-left:18%;">Prints a summary of the
 
1134
software license to standard output, and then exits.</p>
 
1135
 
 
1136
 
 
1137
<p style="margin-left:11%;"><b>&minus;&minus;line&minus;directives</b>[=<i>yes</i>|<i>no</i>]</p>
 
1138
 
 
1139
<p style="margin-left:18%;">Specifies whether
 
1140
&quot;#line&quot; directives should be recognized. These are
 
1141
present in the output of preprocessors and contain the line
 
1142
number, and possibly the file name, of the original source
 
1143
file(s) from which the preprocessor output file was
 
1144
generated. When enabled, this option will cause <b>ctags</b>
 
1145
to generate tag entries marked with the file names and line
 
1146
numbers of their locations original source file(s), instead
 
1147
of their actual locations in the preprocessor output. The
 
1148
actual file names placed into the tag file will have the
 
1149
same leading path components as the preprocessor output
 
1150
file, since it is assumed that the original source files are
 
1151
located relative to the preprocessor output file (unless, of
 
1152
course, the #line directive specifies an absolute path).
 
1153
This option is off by default. <b>Note:</b> This option is
 
1154
generally only useful when used together with the
1504
1155
<b>&minus;&minus;excmd</b>=<i>number</i> (<b>&minus;n</b>)
1505
1156
option. Also, you may have to use either the
1506
1157
<b>&minus;&minus;langmap</b> or
1507
1158
<b>&minus;&minus;language&minus;force</b> option if the
1508
1159
extension of the preprocessor output file is not known to
1509
1160
<b>ctags</b>.</p>
1510
 
</td>
1511
 
</table>
1512
 
<!-- INDENTATION -->
1513
 
<table width="100%" border=0 rules="none" frame="void"
1514
 
       cols="2" cellspacing="0" cellpadding="0">
1515
 
<tr valign="top" align="left">
1516
 
<td width="11%"></td>
1517
 
<td width="89%">
1518
 
 
1519
 
<p><b>&minus;&minus;links</b>[=<i>yes</i>|<i>no</i>]</p></td>
1520
 
</table>
1521
 
<!-- INDENTATION -->
1522
 
<table width="100%" border=0 rules="none" frame="void"
1523
 
       cols="2" cellspacing="0" cellpadding="0">
1524
 
<tr valign="top" align="left">
1525
 
<td width="18%"></td>
1526
 
<td width="82%">
1527
 
<p>Indicates whether symbolic links (if supported) should be
1528
 
followed. When disabled, symbolic links are ignored. This
1529
 
option is on by default.</p>
1530
 
</td>
1531
 
</table>
1532
 
<!-- INDENTATION -->
1533
 
<table width="100%" border=0 rules="none" frame="void"
1534
 
       cols="2" cellspacing="0" cellpadding="0">
1535
 
<tr valign="top" align="left">
1536
 
<td width="11%"></td>
1537
 
<td width="89%">
1538
 
 
1539
 
<p><b>&minus;&minus;list&minus;kinds</b>[=<i>language</i>|<i>all</i>]</p></td>
1540
 
</table>
1541
 
<!-- INDENTATION -->
1542
 
<table width="100%" border=0 rules="none" frame="void"
1543
 
       cols="2" cellspacing="0" cellpadding="0">
1544
 
<tr valign="top" align="left">
1545
 
<td width="18%"></td>
1546
 
<td width="82%">
1547
 
<p>Lists the tag kinds recognized for either the specified
1548
 
language or all languages, and then exits. Each kind of tag
1549
 
recorded in the tag file is represented by a one-letter
1550
 
flag, which is also used to filter the tags placed into the
1551
 
output through use of the
 
1161
 
 
1162
 
 
1163
<p style="margin-left:11%;"><b>&minus;&minus;links</b>[=<i>yes</i>|<i>no</i>]</p>
 
1164
 
 
1165
<p style="margin-left:18%;">Indicates whether symbolic
 
1166
links (if supported) should be followed. When disabled,
 
1167
symbolic links are ignored. This option is on by
 
1168
default.</p>
 
1169
 
 
1170
 
 
1171
<p style="margin-left:11%;"><b>&minus;&minus;list&minus;kinds</b>[=<i>language</i>|<i>all</i>]</p>
 
1172
 
 
1173
<p style="margin-left:18%;">Lists the tag kinds recognized
 
1174
for either the specified language or all languages, and then
 
1175
exits. Each kind of tag recorded in the tag file is
 
1176
represented by a one-letter flag, which is also used to
 
1177
filter the tags placed into the output through use of the
1552
1178
<b>&minus;&minus;&lt;LANG&gt;&minus;kinds</b> option. Note
1553
1179
that some languages and/or tag kinds may be implemented
1554
1180
using regular expressions and may not be available if regex
1556
1182
<b>&minus;&minus;regex&minus;&lt;LANG&gt;</b> option). Each
1557
1183
kind listed is enabled unless followed by
1558
1184
&quot;[off]&quot;.</p>
1559
 
</td>
1560
 
</table>
1561
 
<!-- INDENTATION -->
1562
 
<table width="100%" border=0 rules="none" frame="void"
1563
 
       cols="2" cellspacing="0" cellpadding="0">
1564
 
<tr valign="top" align="left">
1565
 
<td width="11%"></td>
1566
 
<td width="89%">
1567
 
 
1568
 
<p><b>&minus;&minus;list&minus;maps</b>[=<i>language</i>|<i>all</i>]</p></td>
1569
 
</table>
1570
 
<!-- INDENTATION -->
1571
 
<table width="100%" border=0 rules="none" frame="void"
1572
 
       cols="2" cellspacing="0" cellpadding="0">
1573
 
<tr valign="top" align="left">
1574
 
<td width="18%"></td>
1575
 
<td width="82%">
1576
 
<p>Lists the file extensions and file name patterns which
1577
 
associate a file name with a language for either the
1578
 
specified language or all languages, and then exits. See the
1579
 
<b>&minus;&minus;langmap</b> option, and <b>SOURCE
1580
 
FILES</b>, above.</p>
1581
 
</td>
1582
 
</table>
1583
 
<!-- INDENTATION -->
1584
 
<table width="100%" border=0 rules="none" frame="void"
1585
 
       cols="2" cellspacing="0" cellpadding="0">
1586
 
<tr valign="top" align="left">
1587
 
<td width="11%"></td>
1588
 
<td width="89%">
1589
 
<p><b>&minus;&minus;list&minus;languages</b></p></td>
1590
 
</table>
1591
 
<!-- INDENTATION -->
1592
 
<table width="100%" border=0 rules="none" frame="void"
1593
 
       cols="2" cellspacing="0" cellpadding="0">
1594
 
<tr valign="top" align="left">
1595
 
<td width="18%"></td>
1596
 
<td width="82%">
1597
 
<p>Lists the names of the languages understood by
1598
 
<b>ctags</b>, and then exits. These language names are case
1599
 
insensitive and may be used in the
 
1185
 
 
1186
 
 
1187
<p style="margin-left:11%;"><b>&minus;&minus;list&minus;maps</b>[=<i>language</i>|<i>all</i>]</p>
 
1188
 
 
1189
<p style="margin-left:18%;">Lists the file extensions and
 
1190
file name patterns which associate a file name with a
 
1191
language for either the specified language or all languages,
 
1192
and then exits. See the <b>&minus;&minus;langmap</b> option,
 
1193
and <b>SOURCE FILES</b>, above.</p>
 
1194
 
 
1195
 
 
1196
<p style="margin-left:11%;"><b>&minus;&minus;list&minus;languages</b></p>
 
1197
 
 
1198
<p style="margin-left:18%;">Lists the names of the
 
1199
languages understood by <b>ctags</b>, and then exits. These
 
1200
language names are case insensitive and may be used in the
1600
1201
<b>&minus;&minus;language&minus;force</b>,
1601
1202
<b>&minus;&minus;languages</b>,
1602
1203
<b>&minus;&minus;&lt;LANG&gt;&minus;kinds</b>, and
1603
1204
<b>&minus;&minus;regex&minus;&lt;LANG&gt;</b> options.</p>
1604
 
</td>
1605
 
</table>
1606
 
<!-- INDENTATION -->
1607
 
<table width="100%" border=0 rules="none" frame="void"
1608
 
       cols="2" cellspacing="0" cellpadding="0">
1609
 
<tr valign="top" align="left">
1610
 
<td width="11%"></td>
1611
 
<td width="89%">
1612
 
<p><b>&minus;&minus;options</b>=<i>file</i></p></td>
1613
 
</table>
1614
 
<!-- INDENTATION -->
1615
 
<table width="100%" border=0 rules="none" frame="void"
1616
 
       cols="2" cellspacing="0" cellpadding="0">
1617
 
<tr valign="top" align="left">
1618
 
<td width="18%"></td>
1619
 
<td width="82%">
1620
 
<p>Read additional options from <i>file</i>. The file should
1621
 
contain one option per line. As a special case, if
1622
 
<b>&minus;&minus;options</b>=<i>NONE</i> is specified as the
1623
 
first option on the command line, it will disable the
1624
 
automatic reading of any configuration options from either a
1625
 
file or the environment (see <b>FILES</b>).</p>
1626
 
</td>
1627
 
</table>
1628
 
<!-- INDENTATION -->
1629
 
<table width="100%" border=0 rules="none" frame="void"
1630
 
       cols="2" cellspacing="0" cellpadding="0">
1631
 
<tr valign="top" align="left">
1632
 
<td width="11%"></td>
1633
 
<td width="89%">
1634
 
 
1635
 
<p><b>&minus;&minus;recurse</b>[=<i>yes</i>|<i>no</i>]</p></td>
1636
 
</table>
1637
 
<!-- INDENTATION -->
1638
 
<table width="100%" border=0 rules="none" frame="void"
1639
 
       cols="2" cellspacing="0" cellpadding="0">
1640
 
<tr valign="top" align="left">
1641
 
<td width="18%"></td>
1642
 
<td width="82%">
1643
 
<p>Recurse into directories encountered in the list of
1644
 
supplied files. If the list of supplied files is empty and
1645
 
no file list is specified with the <b>&minus;L</b> option,
1646
 
then the current directory (i.e. &quot;.&quot;) is assumed.
1647
 
Symbolic links are followed. If you don&rsquo;t like these
1648
 
behaviors, either explicitly specify the files or pipe the
1649
 
output of <b>find</b>(1) into <b>ctags &minus;L&minus;</b>
1650
 
instead. <b>Note:</b> This option is not supported on all
1651
 
platforms at present. It is available if the output of the
1652
 
<b>&minus;&minus;help</b> option includes this option. See,
1653
 
also, the <b>&minus;&minus;exclude</b> to limit
1654
 
recursion.</p>
1655
 
</td>
1656
 
</table>
1657
 
<!-- INDENTATION -->
1658
 
<table width="100%" border=0 rules="none" frame="void"
1659
 
       cols="2" cellspacing="0" cellpadding="0">
1660
 
<tr valign="top" align="left">
1661
 
<td width="11%"></td>
1662
 
<td width="89%">
1663
 
 
1664
 
<p><b>&minus;&minus;regex&minus;&lt;LANG&gt;</b>=<i>/regexp/replacement/[kind&minus;spec/][flags]</i></p></td>
1665
 
</table>
1666
 
<!-- INDENTATION -->
1667
 
<table width="100%" border=0 rules="none" frame="void"
1668
 
       cols="2" cellspacing="0" cellpadding="0">
1669
 
<tr valign="top" align="left">
1670
 
<td width="18%"></td>
1671
 
<td width="82%">
1672
 
<p>The <i>/regexp/replacement/</i> pair define a regular
1673
 
expression replacement pattern, similar in style to
1674
 
<b>sed</b> substitution commands, with which to generate
1675
 
tags from source files mapped to the named language,
1676
 
<b>&lt;LANG&gt;</b>, (case-insensitive; either a built-in or
1677
 
user-defined language). The regular expression,
 
1205
 
 
1206
 
 
1207
<p style="margin-left:11%;"><b>&minus;&minus;options</b>=<i>file</i></p>
 
1208
 
 
1209
<p style="margin-left:18%;">Read additional options from
 
1210
<i>file</i>. The file should contain one option per line. As
 
1211
a special case, if <b>&minus;&minus;options</b>=<i>NONE</i>
 
1212
is specified as the first option on the command line, it
 
1213
will disable the automatic reading of any configuration
 
1214
options from either a file or the environment (see
 
1215
<b>FILES</b>).</p>
 
1216
 
 
1217
 
 
1218
<p style="margin-left:11%;"><b>&minus;&minus;recurse</b>[=<i>yes</i>|<i>no</i>]</p>
 
1219
 
 
1220
<p style="margin-left:18%;">Recurse into directories
 
1221
encountered in the list of supplied files. If the list of
 
1222
supplied files is empty and no file list is specified with
 
1223
the <b>&minus;L</b> option, then the current directory (i.e.
 
1224
&quot;.&quot;) is assumed. Symbolic links are followed. If
 
1225
you don&rsquo;t like these behaviors, either explicitly
 
1226
specify the files or pipe the output of <b>find</b>(1) into
 
1227
<b>ctags &minus;L&minus;</b> instead. <b>Note:</b> This
 
1228
option is not supported on all platforms at present. It is
 
1229
available if the output of the <b>&minus;&minus;help</b>
 
1230
option includes this option. See, also, the
 
1231
<b>&minus;&minus;exclude</b> to limit recursion.</p>
 
1232
 
 
1233
 
 
1234
<p style="margin-left:11%;"><b>&minus;&minus;regex&minus;&lt;LANG&gt;</b>=<i>/regexp/replacement/[kind&minus;spec/][flags]</i></p>
 
1235
 
 
1236
<p style="margin-left:18%;">The <i>/regexp/replacement/</i>
 
1237
pair define a regular expression replacement pattern,
 
1238
similar in style to <b>sed</b> substitution commands, with
 
1239
which to generate tags from source files mapped to the named
 
1240
language, <b>&lt;LANG&gt;</b>, (case-insensitive; either a
 
1241
built-in or user-defined language). The regular expression,
1678
1242
<i>regexp</i>, defines an extended regular expression
1679
1243
(roughly that used by <b>egrep</b>(1)), which is used to
1680
1244
locate a single source line containing a tag and may specify
1692
1256
is added to the current list of regular expressions for the
1693
1257
specified language unless the parameter is omitted, in which
1694
1258
case the current list is cleared.</p>
1695
 
<!-- INDENTATION -->
1696
 
<p>Unless modified by <i>flags</i>, <i>regexp</i> is
1697
 
interpreted as a Posix extended regular expression. The
1698
 
<i>replacement</i> should expand for all matching lines to a
1699
 
non-empty string of characters, or a warning message will be
1700
 
reported. An optional kind specifier for tags matching
1701
 
<i>regexp</i> may follow <i>replacement</i>, which will
1702
 
determine what kind of tag is reported in the
1703
 
&quot;kind&quot; extension field (see <b>TAG FILE
1704
 
FORMAT</b>, below). The full form of <i>kind&minus;spec</i>
1705
 
is in the form of a single letter, a comma, a name (without
1706
 
spaces), a comma, a description, followed by a separator,
1707
 
which specify the short and long forms of the kind value and
1708
 
its textual description (displayed using
1709
 
<b>&minus;&minus;list&minus;kinds</b>). Either the kind name
1710
 
and/or the description may be omitted. If
1711
 
<i>kind&minus;spec</i> is omitted, it defaults to
 
1259
 
 
1260
<p style="margin-left:18%; margin-top: 1em">Unless modified
 
1261
by <i>flags</i>, <i>regexp</i> is interpreted as a Posix
 
1262
extended regular expression. The <i>replacement</i> should
 
1263
expand for all matching lines to a non-empty string of
 
1264
characters, or a warning message will be reported. An
 
1265
optional kind specifier for tags matching <i>regexp</i> may
 
1266
follow <i>replacement</i>, which will determine what kind of
 
1267
tag is reported in the &quot;kind&quot; extension field (see
 
1268
<b>TAG FILE FORMAT</b>, below). The full form of
 
1269
<i>kind&minus;spec</i> is in the form of a single letter, a
 
1270
comma, a name (without spaces), a comma, a description,
 
1271
followed by a separator, which specify the short and long
 
1272
forms of the kind value and its textual description
 
1273
(displayed using <b>&minus;&minus;list&minus;kinds</b>).
 
1274
Either the kind name and/or the description may be omitted.
 
1275
If <i>kind&minus;spec</i> is omitted, it defaults to
1712
1276
&quot;<i>r,regex</i>&quot;. Finally, <i>flags</i> are one or
1713
1277
more single-letter characters having the following effect
1714
1278
upon the interpretation of <i>regexp</i>:</p>
1715
 
</td>
1716
 
</table>
1717
 
<!-- TABS -->
1718
 
<table width="100%" border=0 rules="none" frame="void"
1719
 
       cols="4" cellspacing="0" cellpadding="0">
1720
 
<tr valign="top" align="left">
1721
 
<td width="23%"></td>
1722
 
<td width="2%">
1723
 
 
1724
 
<p><i>b</i></p>
1725
 
</td>
1726
 
<td width="4%"></td>
1727
 
<td width="71%">
1728
 
 
1729
 
<p>The pattern is interpreted as a Posix basic regular
1730
 
expression.</p>
1731
 
</td>
1732
 
<tr valign="top" align="left">
1733
 
<td width="23%"></td>
1734
 
<td width="2%">
1735
 
 
1736
 
<p><i>e</i></p>
1737
 
</td>
1738
 
<td width="4%"></td>
1739
 
<td width="71%">
1740
 
 
1741
 
<p>The pattern is interpreted as a Posix extended regular
1742
 
expression (default).</p>
1743
 
</td>
1744
 
<tr valign="top" align="left">
1745
 
<td width="23%"></td>
1746
 
<td width="2%">
1747
 
 
1748
 
<p><i>i</i></p>
1749
 
</td>
1750
 
<td width="4%"></td>
1751
 
<td width="71%">
1752
 
 
1753
 
<p>The regular expression is to be applied in a
1754
 
case-insensitive manner.</p>
1755
 
</td>
1756
 
</table>
1757
 
<!-- INDENTATION -->
1758
 
<table width="100%" border=0 rules="none" frame="void"
1759
 
       cols="2" cellspacing="0" cellpadding="0">
1760
 
<tr valign="top" align="left">
1761
 
<td width="18%"></td>
1762
 
<td width="82%">
1763
 
<p>Note that this option is available only if <b>ctags</b>
1764
 
was compiled with support for regular expressions, which
1765
 
depends upon your platform. You can determine if support for
1766
 
regular expressions is compiled in by examining the output
1767
 
of the <b>&minus;&minus;version</b> option, which will
1768
 
include &quot;+regex&quot; in the compiled feature list.</p>
1769
 
<!-- INDENTATION -->
1770
 
<p>For more information on the regular expressions used by
1771
 
<b>ctags</b>, see either the <b>regex(5,7)</b> man page, or
1772
 
the GNU info documentation for regex (e.g. &quot;info
1773
 
regex&quot;).</p></td>
1774
 
</table>
1775
 
<!-- INDENTATION -->
1776
 
<table width="100%" border=0 rules="none" frame="void"
1777
 
       cols="2" cellspacing="0" cellpadding="0">
1778
 
<tr valign="top" align="left">
1779
 
<td width="11%"></td>
1780
 
<td width="89%">
1781
 
 
1782
 
<p><b>&minus;&minus;sort</b>[=<i>yes</i>|<i>no</i>|<i>foldcase</i>]</p></td>
1783
 
</table>
1784
 
<!-- INDENTATION -->
1785
 
<table width="100%" border=0 rules="none" frame="void"
1786
 
       cols="2" cellspacing="0" cellpadding="0">
1787
 
<tr valign="top" align="left">
1788
 
<td width="18%"></td>
1789
 
<td width="82%">
1790
 
<p>Indicates whether the tag file should be sorted on the
1791
 
tag name (default is <i>yes</i>). Note that the original
1792
 
<b>vi</b>(1) required sorted tags. The <i>foldcase</i> value
1793
 
specifies case insensitive (or case-folded) sorting. Fast
1794
 
binary searches of tag files sorted with case-folding will
1795
 
require special support from tools using tag files, such as
1796
 
that found in the ctags readtags library, or Vim version 6.2
1797
 
or higher (using &quot;set ignorecase&quot;). This option
1798
 
must appear before the first file name. [Ignored in etags
1799
 
mode]</p>
1800
 
</td>
1801
 
</table>
1802
 
<!-- INDENTATION -->
1803
 
<table width="100%" border=0 rules="none" frame="void"
1804
 
       cols="2" cellspacing="0" cellpadding="0">
1805
 
<tr valign="top" align="left">
1806
 
<td width="11%"></td>
1807
 
<td width="89%">
1808
 
 
1809
 
<p><b>&minus;&minus;tag&minus;relative</b>[=<i>yes</i>|<i>no</i>]</p></td>
1810
 
</table>
1811
 
<!-- INDENTATION -->
1812
 
<table width="100%" border=0 rules="none" frame="void"
1813
 
       cols="2" cellspacing="0" cellpadding="0">
1814
 
<tr valign="top" align="left">
1815
 
<td width="18%"></td>
1816
 
<td width="82%">
1817
 
<p>Indicates that the file paths recorded in the tag file
1818
 
should be relative to the directory containing the tag file,
1819
 
rather than relative to the current directory, unless the
1820
 
files supplied on the command line are specified with
1821
 
absolute paths. This option must appear before the first
1822
 
file name. The default is <i>yes</i> when running in etags
1823
 
mode (see the <b>&minus;e</b> option), <i>no</i>
1824
 
otherwise.</p>
1825
 
</td>
1826
 
</table>
1827
 
<!-- INDENTATION -->
1828
 
<table width="100%" border=0 rules="none" frame="void"
1829
 
       cols="2" cellspacing="0" cellpadding="0">
1830
 
<tr valign="top" align="left">
1831
 
<td width="11%"></td>
1832
 
<td width="89%">
1833
 
 
1834
 
<p><b>&minus;&minus;totals</b>[=<i>yes</i>|<i>no</i>]</p></td>
1835
 
</table>
1836
 
<!-- INDENTATION -->
1837
 
<table width="100%" border=0 rules="none" frame="void"
1838
 
       cols="2" cellspacing="0" cellpadding="0">
1839
 
<tr valign="top" align="left">
1840
 
<td width="18%"></td>
1841
 
<td width="82%">
1842
 
<p>Prints statistics about the source files read and the tag
1843
 
file written during the current invocation of <b>ctags</b>.
1844
 
This option is off by default. This option must appear
1845
 
before the first file name.</p>
1846
 
</td>
1847
 
</table>
1848
 
<!-- INDENTATION -->
1849
 
<table width="100%" border=0 rules="none" frame="void"
1850
 
       cols="2" cellspacing="0" cellpadding="0">
1851
 
<tr valign="top" align="left">
1852
 
<td width="11%"></td>
1853
 
<td width="89%">
1854
 
 
1855
 
<p><b>&minus;&minus;verbose</b>[=<i>yes</i>|<i>no</i>]</p></td>
1856
 
</table>
1857
 
<!-- INDENTATION -->
1858
 
<table width="100%" border=0 rules="none" frame="void"
1859
 
       cols="2" cellspacing="0" cellpadding="0">
1860
 
<tr valign="top" align="left">
1861
 
<td width="18%"></td>
1862
 
<td width="82%">
1863
 
<p>Enable verbose mode. This prints out information on
1864
 
option processing and a brief message describing what action
1865
 
is being taken for each file considered by <b>ctags</b>.
1866
 
Normally, <b>ctags</b> does not read command line arguments
1867
 
until after options are read from the configuration files
1868
 
(see <b>FILES</b>, below) and the <b>CTAGS</b> environment
1869
 
variable. However, if this option is the first argument on
1870
 
the command line, it will take effect before any options are
1871
 
read from these sources. The default is <i>no</i>.</p>
1872
 
</td>
1873
 
</table>
1874
 
<!-- INDENTATION -->
1875
 
<table width="100%" border=0 rules="none" frame="void"
1876
 
       cols="2" cellspacing="0" cellpadding="0">
1877
 
<tr valign="top" align="left">
1878
 
<td width="11%"></td>
1879
 
<td width="89%">
1880
 
<p><b>&minus;&minus;version</b></p></td>
1881
 
</table>
1882
 
<!-- INDENTATION -->
1883
 
<table width="100%" border=0 rules="none" frame="void"
1884
 
       cols="2" cellspacing="0" cellpadding="0">
1885
 
<tr valign="top" align="left">
1886
 
<td width="18%"></td>
1887
 
<td width="82%">
1888
 
<p>Prints a version identifier for <b>ctags</b> to standard
1889
 
output, and then exits. This is guaranteed to always contain
1890
 
the string &quot;Exuberant Ctags&quot;.</p>
1891
 
</td>
1892
 
</table>
 
1279
 
 
1280
<table width="100%" border=0 rules="none" frame="void"
 
1281
       cellspacing="0" cellpadding="0">
 
1282
<tr valign="top" align="left">
 
1283
<td width="23%"></td>
 
1284
<td width="2%">
 
1285
 
 
1286
 
 
1287
<p style="margin-top: 1em" valign="top"><i>b</i></p></td>
 
1288
<td width="4%"></td>
 
1289
<td width="71%">
 
1290
 
 
1291
 
 
1292
<p style="margin-top: 1em" valign="top">The pattern is
 
1293
interpreted as a Posix basic regular expression.</p></td>
 
1294
<tr valign="top" align="left">
 
1295
<td width="23%"></td>
 
1296
<td width="2%">
 
1297
 
 
1298
 
 
1299
<p style="margin-top: 1em" valign="top"><i>e</i></p></td>
 
1300
<td width="4%"></td>
 
1301
<td width="71%">
 
1302
 
 
1303
 
 
1304
<p style="margin-top: 1em" valign="top">The pattern is
 
1305
interpreted as a Posix extended regular expression
 
1306
(default).</p> </td>
 
1307
<tr valign="top" align="left">
 
1308
<td width="23%"></td>
 
1309
<td width="2%">
 
1310
 
 
1311
 
 
1312
<p style="margin-top: 1em" valign="top"><i>i</i></p></td>
 
1313
<td width="4%"></td>
 
1314
<td width="71%">
 
1315
 
 
1316
 
 
1317
<p style="margin-top: 1em" valign="top">The regular
 
1318
expression is to be applied in a case-insensitive
 
1319
manner.</p> </td>
 
1320
</table>
 
1321
 
 
1322
<p style="margin-left:18%; margin-top: 1em">Note that this
 
1323
option is available only if <b>ctags</b> was compiled with
 
1324
support for regular expressions, which depends upon your
 
1325
platform. You can determine if support for regular
 
1326
expressions is compiled in by examining the output of the
 
1327
<b>&minus;&minus;version</b> option, which will include
 
1328
&quot;+regex&quot; in the compiled feature list.</p>
 
1329
 
 
1330
<p style="margin-left:18%; margin-top: 1em">For more
 
1331
information on the regular expressions used by <b>ctags</b>,
 
1332
see either the <b>regex(5,7)</b> man page, or the GNU info
 
1333
documentation for regex (e.g. &quot;info regex&quot;).</p>
 
1334
 
 
1335
 
 
1336
<p style="margin-left:11%;"><b>&minus;&minus;sort</b>[=<i>yes</i>|<i>no</i>|<i>foldcase</i>]</p>
 
1337
 
 
1338
<p style="margin-left:18%;">Indicates whether the tag file
 
1339
should be sorted on the tag name (default is <i>yes</i>).
 
1340
Note that the original <b>vi</b>(1) required sorted tags.
 
1341
The <i>foldcase</i> value specifies case insensitive (or
 
1342
case-folded) sorting. Fast binary searches of tag files
 
1343
sorted with case-folding will require special support from
 
1344
tools using tag files, such as that found in the ctags
 
1345
readtags library, or Vim version 6.2 or higher (using
 
1346
&quot;set ignorecase&quot;). This option must appear before
 
1347
the first file name. [Ignored in etags mode]</p>
 
1348
 
 
1349
 
 
1350
<p style="margin-left:11%;"><b>&minus;&minus;tag&minus;relative</b>[=<i>yes</i>|<i>no</i>]</p>
 
1351
 
 
1352
<p style="margin-left:18%;">Indicates that the file paths
 
1353
recorded in the tag file should be relative to the directory
 
1354
containing the tag file, rather than relative to the current
 
1355
directory, unless the files supplied on the command line are
 
1356
specified with absolute paths. This option must appear
 
1357
before the first file name. The default is <i>yes</i> when
 
1358
running in etags mode (see the <b>&minus;e</b> option),
 
1359
<i>no</i> otherwise.</p>
 
1360
 
 
1361
 
 
1362
<p style="margin-left:11%;"><b>&minus;&minus;totals</b>[=<i>yes</i>|<i>no</i>]</p>
 
1363
 
 
1364
<p style="margin-left:18%;">Prints statistics about the
 
1365
source files read and the tag file written during the
 
1366
current invocation of <b>ctags</b>. This option is off by
 
1367
default. This option must appear before the first file
 
1368
name.</p>
 
1369
 
 
1370
 
 
1371
<p style="margin-left:11%;"><b>&minus;&minus;verbose</b>[=<i>yes</i>|<i>no</i>]</p>
 
1372
 
 
1373
<p style="margin-left:18%;">Enable verbose mode. This
 
1374
prints out information on option processing and a brief
 
1375
message describing what action is being taken for each file
 
1376
considered by <b>ctags</b>. Normally, <b>ctags</b> does not
 
1377
read command line arguments until after options are read
 
1378
from the configuration files (see <b>FILES</b>, below) and
 
1379
the <b>CTAGS</b> environment variable. However, if this
 
1380
option is the first argument on the command line, it will
 
1381
take effect before any options are read from these sources.
 
1382
The default is <i>no</i>.</p>
 
1383
 
 
1384
 
 
1385
<p style="margin-left:11%;"><b>&minus;&minus;version</b></p>
 
1386
 
 
1387
<p style="margin-left:18%;">Prints a version identifier for
 
1388
<b>ctags</b> to standard output, and then exits. This is
 
1389
guaranteed to always contain the string &quot;Exuberant
 
1390
Ctags&quot;.</p>
 
1391
 
1893
1392
<a name="OPERATIONAL DETAILS"></a>
1894
1393
<h2>OPERATIONAL DETAILS</h2>
1895
 
<!-- INDENTATION -->
1896
 
<table width="100%" border=0 rules="none" frame="void"
1897
 
       cols="2" cellspacing="0" cellpadding="0">
1898
 
<tr valign="top" align="left">
1899
 
<td width="11%"></td>
1900
 
<td width="89%">
1901
 
<p>As <b>ctags</b> considers each file name in turn, it
1902
 
tries to determine the language of the file by applying the
1903
 
following three tests in order: if the file extension has
1904
 
been mapped to a language, if the file name matches a shell
1905
 
pattern mapped to a language, and finally if the file is
1906
 
executable and its first line specifies an interpreter using
1907
 
the Unix-style &quot;#!&quot; specification (if supported on
1908
 
the platform). If a language was identified, the file is
1909
 
opened and then the appropriate language parser is called to
1910
 
operate on the currently open file. The parser parses
1911
 
through the file and adds an entry to the tag file for each
1912
 
language object it is written to handle. See <b>TAG FILE
1913
 
FORMAT</b>, below, for details on these entries.</p>
1914
 
<!-- INDENTATION -->
1915
 
<p>This implementation of <b>ctags</b> imposes no formatting
 
1394
 
 
1395
 
 
1396
<p style="margin-left:11%; margin-top: 1em">As <b>ctags</b>
 
1397
considers each file name in turn, it tries to determine the
 
1398
language of the file by applying the following three tests
 
1399
in order: if the file extension has been mapped to a
 
1400
language, if the file name matches a shell pattern mapped to
 
1401
a language, and finally if the file is executable and its
 
1402
first line specifies an interpreter using the Unix-style
 
1403
&quot;#!&quot; specification (if supported on the platform).
 
1404
If a language was identified, the file is opened and then
 
1405
the appropriate language parser is called to operate on the
 
1406
currently open file. The parser parses through the file and
 
1407
adds an entry to the tag file for each language object it is
 
1408
written to handle. See <b>TAG FILE FORMAT</b>, below, for
 
1409
details on these entries.</p>
 
1410
 
 
1411
<p style="margin-left:11%; margin-top: 1em">This
 
1412
implementation of <b>ctags</b> imposes no formatting
1916
1413
requirements on C code as do legacy implementations. Older
1917
1414
implementations of ctags tended to rely upon certain
1918
1415
formatting assumptions in order to help it resolve coding
1919
1416
dilemmas caused by preprocessor conditionals.</p>
1920
 
<!-- INDENTATION -->
1921
 
<p>In general, <b>ctags</b> tries to be smart about
1922
 
conditional preprocessor directives. If a preprocessor
1923
 
conditional is encountered within a statement which defines
1924
 
a tag, <b>ctags</b> follows only the first branch of that
 
1417
 
 
1418
<p style="margin-left:11%; margin-top: 1em">In general,
 
1419
<b>ctags</b> tries to be smart about conditional
 
1420
preprocessor directives. If a preprocessor conditional is
 
1421
encountered within a statement which defines a tag,
 
1422
<b>ctags</b> follows only the first branch of that
1925
1423
conditional (except in the special case of &quot;#if
1926
1424
0&quot;, in which case it follows only the last branch). The
1927
1425
reason for this is that failing to pursue only one branch
1928
1426
can result in ambiguous syntax, as in the following
1929
1427
example:</p>
1930
 
</td>
1931
 
</table>
1932
 
<!-- INDENTATION -->
1933
 
<table width="100%" border=0 rules="none" frame="void"
1934
 
       cols="2" cellspacing="0" cellpadding="0">
1935
 
<tr valign="top" align="left">
1936
 
<td width="22%"></td>
1937
 
<td width="78%">
1938
 
<p>#ifdef TWO_ALTERNATIVES<br>
1939
 
struct {<br>
1940
 
#else<br>
1941
 
union {<br>
1942
 
#endif</p></td>
1943
 
</table>
1944
 
<!-- INDENTATION -->
1945
 
<table width="100%" border=0 rules="none" frame="void"
1946
 
       cols="2" cellspacing="0" cellpadding="0">
1947
 
<tr valign="top" align="left">
1948
 
<td width="28%"></td>
1949
 
<td width="72%">
1950
 
<p>short a;<br>
1951
 
long b;</p></td>
1952
 
</table>
1953
 
<!-- INDENTATION -->
1954
 
<table width="100%" border=0 rules="none" frame="void"
1955
 
       cols="2" cellspacing="0" cellpadding="0">
1956
 
<tr valign="top" align="left">
1957
 
<td width="22%"></td>
1958
 
<td width="78%">
1959
 
<p>}</p></td>
1960
 
</table>
1961
 
<!-- INDENTATION -->
1962
 
<table width="100%" border=0 rules="none" frame="void"
1963
 
       cols="2" cellspacing="0" cellpadding="0">
1964
 
<tr valign="top" align="left">
1965
 
<td width="11%"></td>
1966
 
<td width="89%">
1967
 
<p>Both branches cannot be followed, or braces become
1968
 
unbalanced and <b>ctags</b> would be unable to make sense of
1969
 
the syntax.</p>
1970
 
<!-- INDENTATION -->
1971
 
<p>If the application of this heuristic fails to properly
1972
 
parse a file, generally due to complicated and inconsistent
1973
 
pairing within the conditionals, <b>ctags</b> will retry the
1974
 
file using a different heuristic which does not selectively
 
1428
 
 
1429
<p style="margin-left:22%; margin-top: 1em">#ifdef
 
1430
TWO_ALTERNATIVES <br>
 
1431
struct { <br>
 
1432
#else <br>
 
1433
union { <br>
 
1434
#endif</p>
 
1435
 
 
1436
<p style="margin-left:28%;">short a; <br>
 
1437
long b;</p>
 
1438
 
 
1439
<p style="margin-left:22%;">}</p>
 
1440
 
 
1441
<p style="margin-left:11%; margin-top: 1em">Both branches
 
1442
cannot be followed, or braces become unbalanced and
 
1443
<b>ctags</b> would be unable to make sense of the
 
1444
syntax.</p>
 
1445
 
 
1446
<p style="margin-left:11%; margin-top: 1em">If the
 
1447
application of this heuristic fails to properly parse a
 
1448
file, generally due to complicated and inconsistent pairing
 
1449
within the conditionals, <b>ctags</b> will retry the file
 
1450
using a different heuristic which does not selectively
1975
1451
follow conditional preprocessor branches, but instead falls
1976
1452
back to relying upon a closing brace (&quot;}&quot;) in
1977
1453
column 1 as indicating the end of a block once any brace
1978
1454
imbalance results from following a #if conditional
1979
1455
branch.</p>
1980
 
<!-- INDENTATION -->
1981
 
<p><b>Ctags</b> will also try to specially handle arguments
1982
 
lists enclosed in double sets of parentheses in order to
1983
 
accept the following conditional construct:</p>
1984
 
</td>
1985
 
</table>
1986
 
<!-- INDENTATION -->
1987
 
<table width="100%" border=0 rules="none" frame="void"
1988
 
       cols="2" cellspacing="0" cellpadding="0">
1989
 
<tr valign="top" align="left">
1990
 
<td width="22%"></td>
1991
 
<td width="78%">
1992
 
<p>extern void foo __ARGS((int one, char two));</p></td>
1993
 
</table>
1994
 
<!-- INDENTATION -->
1995
 
<table width="100%" border=0 rules="none" frame="void"
1996
 
       cols="2" cellspacing="0" cellpadding="0">
1997
 
<tr valign="top" align="left">
1998
 
<td width="11%"></td>
1999
 
<td width="89%">
2000
 
<p>Any name immediately preceding the &quot;((&quot; will be
 
1456
 
 
1457
<p style="margin-left:11%; margin-top: 1em"><b>Ctags</b>
 
1458
will also try to specially handle arguments lists enclosed
 
1459
in double sets of parentheses in order to accept the
 
1460
following conditional construct:</p>
 
1461
 
 
1462
<p style="margin-left:22%; margin-top: 1em">extern void foo
 
1463
__ARGS((int one, char two));</p>
 
1464
 
 
1465
<p style="margin-left:11%; margin-top: 1em">Any name
 
1466
immediately preceding the &quot;((&quot; will be
2001
1467
automatically ignored and the previous name will be
2002
1468
used.</p>
2003
 
<!-- INDENTATION -->
2004
 
<p>C++ operator definitions are specially handled. In order
2005
 
for consistency with all types of operators (overloaded and
2006
 
conversion), the operator name in the tag file will always
2007
 
be preceded by the string &quot;operator &quot; (i.e. even
2008
 
if the actual operator definition was written as
 
1469
 
 
1470
<p style="margin-left:11%; margin-top: 1em">C++ operator
 
1471
definitions are specially handled. In order for consistency
 
1472
with all types of operators (overloaded and conversion), the
 
1473
operator name in the tag file will always be preceded by the
 
1474
string &quot;operator &quot; (i.e. even if the actual
 
1475
operator definition was written as
2009
1476
&quot;operator&lt;&lt;&quot;).</p>
2010
 
<!-- INDENTATION -->
2011
 
<p>After creating or appending to the tag file, it is sorted
2012
 
by the tag name, removing identical tag lines.</p>
2013
 
</td>
2014
 
</table>
 
1477
 
 
1478
<p style="margin-left:11%; margin-top: 1em">After creating
 
1479
or appending to the tag file, it is sorted by the tag name,
 
1480
removing identical tag lines.</p>
 
1481
 
2015
1482
<a name="TAG FILE FORMAT"></a>
2016
1483
<h2>TAG FILE FORMAT</h2>
2017
 
<!-- INDENTATION -->
2018
 
<table width="100%" border=0 rules="none" frame="void"
2019
 
       cols="2" cellspacing="0" cellpadding="0">
2020
 
<tr valign="top" align="left">
2021
 
<td width="11%"></td>
2022
 
<td width="89%">
2023
 
<p>When not running in etags mode, each entry in the tag
2024
 
file consists of a separate line, each looking like this in
2025
 
the most general case:</p>
2026
 
</td>
2027
 
</table>
2028
 
<!-- INDENTATION -->
2029
 
<table width="100%" border=0 rules="none" frame="void"
2030
 
       cols="2" cellspacing="0" cellpadding="0">
2031
 
<tr valign="top" align="left">
2032
 
<td width="12%"></td>
2033
 
<td width="88%">
2034
 
 
2035
 
<p>tag_name&lt;TAB&gt;file_name&lt;TAB&gt;ex_cmd;&quot;&lt;TAB&gt;extension_fields</p></td>
2036
 
</table>
2037
 
<!-- INDENTATION -->
2038
 
<table width="100%" border=0 rules="none" frame="void"
2039
 
       cols="2" cellspacing="0" cellpadding="0">
2040
 
<tr valign="top" align="left">
2041
 
<td width="11%"></td>
2042
 
<td width="89%">
2043
 
<p>The fields and separators of these lines are specified as
2044
 
follows:</p>
2045
 
</td>
2046
 
</table>
2047
 
<!-- TABS -->
2048
 
<table width="100%" border=0 rules="none" frame="void"
2049
 
       cols="4" cellspacing="0" cellpadding="0">
2050
 
<tr valign="top" align="left">
2051
 
<td width="17%"></td>
2052
 
<td width="3%">
2053
 
 
2054
 
<p>1.</p>
2055
 
</td>
2056
 
<td width="3%"></td>
2057
 
<td width="77%">
2058
 
 
2059
 
<p>tag name</p>
2060
 
</td>
2061
 
<tr valign="top" align="left">
2062
 
<td width="17%"></td>
2063
 
<td width="3%">
2064
 
 
2065
 
<p>2.</p>
2066
 
</td>
2067
 
<td width="3%"></td>
2068
 
<td width="77%">
2069
 
 
2070
 
<p>single tab character</p>
2071
 
</td>
2072
 
<tr valign="top" align="left">
2073
 
<td width="17%"></td>
2074
 
<td width="3%">
2075
 
 
2076
 
<p>3.</p>
2077
 
</td>
2078
 
<td width="3%"></td>
2079
 
<td width="77%">
2080
 
 
2081
 
<p>name of the file in which the object associated with the
2082
 
tag is located</p>
2083
 
</td>
2084
 
<tr valign="top" align="left">
2085
 
<td width="17%"></td>
2086
 
<td width="3%">
2087
 
 
2088
 
<p>4.</p>
2089
 
</td>
2090
 
<td width="3%"></td>
2091
 
<td width="77%">
2092
 
 
2093
 
<p>single tab character</p>
2094
 
</td>
2095
 
<tr valign="top" align="left">
2096
 
<td width="17%"></td>
2097
 
<td width="3%">
2098
 
 
2099
 
<p>5.</p>
2100
 
</td>
2101
 
<td width="3%"></td>
2102
 
<td width="77%">
2103
 
 
2104
 
<p>EX command used to locate the tag within the file;
2105
 
generally a search pattern (either /pattern/ or ?pattern?)
2106
 
or line number (see <b>&minus;&minus;excmd</b>). Tag file
2107
 
format 2 (see <b>&minus;&minus;format</b>) extends this EX
2108
 
command under certain circumstances to include a set of
2109
 
extension fields (described below) embedded in an EX comment
2110
 
immediately appended to the EX command, which leaves it
2111
 
backward-compatible with original <b>vi</b>(1)
2112
 
implementations.</p>
2113
 
</td>
2114
 
</table>
2115
 
<!-- INDENTATION -->
2116
 
<table width="100%" border=0 rules="none" frame="void"
2117
 
       cols="2" cellspacing="0" cellpadding="0">
2118
 
<tr valign="top" align="left">
2119
 
<td width="11%"></td>
2120
 
<td width="89%">
2121
 
<p>A few special tags are written into the tag file for
2122
 
internal purposes. These tags are composed in such a way
2123
 
that they always sort to the top of the file. Therefore, the
2124
 
first two characters of these tags are used a magic number
2125
 
to detect a tag file for purposes of determining whether a
2126
 
valid tag file is being overwritten rather than a source
2127
 
file.</p>
2128
 
<!-- INDENTATION -->
2129
 
<p>Note that the name of each source file will be recorded
2130
 
in the tag file exactly as it appears on the command line.
2131
 
Therefore, if the path you specified on the command line was
2132
 
relative to the current directory, then it will be recorded
2133
 
in that same manner in the tag file. See, however, the
 
1484
 
 
1485
 
 
1486
<p style="margin-left:11%; margin-top: 1em">When not
 
1487
running in etags mode, each entry in the tag file consists
 
1488
of a separate line, each looking like this in the most
 
1489
general case:</p>
 
1490
 
 
1491
 
 
1492
<p style="margin-left:12%; margin-top: 1em">tag_name&lt;TAB&gt;file_name&lt;TAB&gt;ex_cmd;&quot;&lt;TAB&gt;extension_fields</p>
 
1493
 
 
1494
<p style="margin-left:11%; margin-top: 1em">The fields and
 
1495
separators of these lines are specified as follows:</p>
 
1496
 
 
1497
<table width="100%" border=0 rules="none" frame="void"
 
1498
       cellspacing="0" cellpadding="0">
 
1499
<tr valign="top" align="left">
 
1500
<td width="17%"></td>
 
1501
<td width="3%">
 
1502
 
 
1503
 
 
1504
<p style="margin-top: 1em" valign="top">1.</p></td>
 
1505
<td width="3%"></td>
 
1506
<td width="77%">
 
1507
 
 
1508
 
 
1509
<p style="margin-top: 1em" valign="top">tag name</p></td>
 
1510
<tr valign="top" align="left">
 
1511
<td width="17%"></td>
 
1512
<td width="3%">
 
1513
 
 
1514
 
 
1515
<p valign="top">2.</p></td>
 
1516
<td width="3%"></td>
 
1517
<td width="77%">
 
1518
 
 
1519
 
 
1520
<p valign="top">single tab character</p></td>
 
1521
<tr valign="top" align="left">
 
1522
<td width="17%"></td>
 
1523
<td width="3%">
 
1524
 
 
1525
 
 
1526
<p valign="top">3.</p></td>
 
1527
<td width="3%"></td>
 
1528
<td width="77%">
 
1529
 
 
1530
 
 
1531
<p valign="top">name of the file in which the object
 
1532
associated with the tag is located</p></td>
 
1533
<tr valign="top" align="left">
 
1534
<td width="17%"></td>
 
1535
<td width="3%">
 
1536
 
 
1537
 
 
1538
<p valign="top">4.</p></td>
 
1539
<td width="3%"></td>
 
1540
<td width="77%">
 
1541
 
 
1542
 
 
1543
<p valign="top">single tab character</p></td>
 
1544
<tr valign="top" align="left">
 
1545
<td width="17%"></td>
 
1546
<td width="3%">
 
1547
 
 
1548
 
 
1549
<p valign="top">5.</p></td>
 
1550
<td width="3%"></td>
 
1551
<td width="77%">
 
1552
 
 
1553
 
 
1554
<p valign="top">EX command used to locate the tag within
 
1555
the file; generally a search pattern (either /pattern/ or
 
1556
?pattern?) or line number (see <b>&minus;&minus;excmd</b>).
 
1557
Tag file format 2 (see <b>&minus;&minus;format</b>) extends
 
1558
this EX command under certain circumstances to include a set
 
1559
of extension fields (described below) embedded in an EX
 
1560
comment immediately appended to the EX command, which leaves
 
1561
it backward-compatible with original <b>vi</b>(1)
 
1562
implementations.</p> </td>
 
1563
</table>
 
1564
 
 
1565
<p style="margin-left:11%; margin-top: 1em">A few special
 
1566
tags are written into the tag file for internal purposes.
 
1567
These tags are composed in such a way that they always sort
 
1568
to the top of the file. Therefore, the first two characters
 
1569
of these tags are used a magic number to detect a tag file
 
1570
for purposes of determining whether a valid tag file is
 
1571
being overwritten rather than a source file.</p>
 
1572
 
 
1573
<p style="margin-left:11%; margin-top: 1em">Note that the
 
1574
name of each source file will be recorded in the tag file
 
1575
exactly as it appears on the command line. Therefore, if the
 
1576
path you specified on the command line was relative to the
 
1577
current directory, then it will be recorded in that same
 
1578
manner in the tag file. See, however, the
2134
1579
<b>&minus;&minus;tag&minus;relative</b> option for how this
2135
1580
behavior can be modified.</p>
2136
 
<!-- INDENTATION -->
2137
 
<p>Extension fields are tab-separated key-value pairs
2138
 
appended to the end of the EX command as a comment, as
2139
 
described above. These key value pairs appear in the general
2140
 
form &quot;<i>key</i>:<i>value</i>&quot;. Their presence in
2141
 
the lines of the tag file are controlled by the
 
1581
 
 
1582
<p style="margin-left:11%; margin-top: 1em">Extension
 
1583
fields are tab-separated key-value pairs appended to the end
 
1584
of the EX command as a comment, as described above. These
 
1585
key value pairs appear in the general form
 
1586
&quot;<i>key</i>:<i>value</i>&quot;. Their presence in the
 
1587
lines of the tag file are controlled by the
2142
1588
<b>&minus;&minus;fields</b> option. The possible keys and
2143
1589
the meaning of their values are as follows:</p>
2144
 
</td>
2145
 
</table>
2146
 
<!-- TABS -->
 
1590
 
2147
1591
<table width="100%" border=0 rules="none" frame="void"
2148
 
       cols="4" cellspacing="0" cellpadding="0">
2149
 
<tr valign="top" align="left">
2150
 
<td width="11%"></td>
2151
 
<td width="9%">
2152
 
 
2153
 
<p><i>access</i></p>
2154
 
</td>
2155
 
<td width="9%"></td>
2156
 
<td width="71%">
2157
 
 
2158
 
<p>Indicates the visibility of this class member, where
2159
 
<i>value</i> is specific to the language.</p>
2160
 
</td>
2161
 
<tr valign="top" align="left">
2162
 
<td width="11%"></td>
2163
 
<td width="9%">
2164
 
 
2165
 
<p><i>file</i></p>
2166
 
</td>
2167
 
<td width="9%"></td>
2168
 
<td width="71%">
 
1592
       cellspacing="0" cellpadding="0">
 
1593
<tr valign="top" align="left">
 
1594
<td width="11%"></td>
 
1595
<td width="9%">
 
1596
 
 
1597
 
 
1598
<p style="margin-top: 1em" valign="top"><i>access</i></p></td>
 
1599
<td width="9%"></td>
 
1600
<td width="71%">
 
1601
 
 
1602
 
 
1603
<p style="margin-top: 1em" valign="top">Indicates the
 
1604
visibility of this class member, where <i>value</i> is
 
1605
specific to the language.</p></td>
 
1606
<tr valign="top" align="left">
 
1607
<td width="11%"></td>
 
1608
<td width="9%">
 
1609
 
 
1610
 
 
1611
<p><i>file</i></p></td>
 
1612
<td width="9%"></td>
 
1613
<td width="71%">
 
1614
 
2169
1615
 
2170
1616
<p>Indicates that the tag has file-limited visibility. This
2171
 
key has no corresponding value.</p>
2172
 
</td>
 
1617
key has no corresponding value.</p></td>
2173
1618
<tr valign="top" align="left">
2174
1619
<td width="11%"></td>
2175
1620
<td width="9%">
2176
1621
 
2177
 
<p><i>kind</i></p>
2178
 
</td>
 
1622
 
 
1623
<p><i>kind</i></p></td>
2179
1624
<td width="9%"></td>
2180
1625
<td width="71%">
2181
1626
 
 
1627
 
2182
1628
<p>Indicates the type, or kind, of tag. Its value is either
2183
1629
one of the corresponding one-letter flags described under
2184
1630
the various <b>&minus;&minus;&lt;LANG&gt;&minus;kinds</b>
2185
1631
options above, or a full name. It is permitted (and is, in
2186
1632
fact, the default) for the key portion of this field to be
2187
1633
omitted. The optional behaviors are controlled with the
2188
 
<b>&minus;&minus;fields</b> option.</p>
2189
 
</td>
2190
 
</table>
2191
 
<!-- INDENTATION -->
2192
 
<table width="100%" border=0 rules="none" frame="void"
2193
 
       cols="2" cellspacing="0" cellpadding="0">
2194
 
<tr valign="top" align="left">
2195
 
<td width="11%"></td>
2196
 
<td width="89%">
2197
 
<p><i>implementation</i></p></td>
2198
 
</table>
2199
 
<!-- INDENTATION -->
2200
 
<table width="100%" border=0 rules="none" frame="void"
2201
 
       cols="2" cellspacing="0" cellpadding="0">
2202
 
<tr valign="top" align="left">
2203
 
<td width="29%"></td>
2204
 
<td width="71%">
2205
 
<p>When present, this indicates a limited implementation
2206
 
(abstract vs. concrete) of a routine or class, where
2207
 
<i>value</i> is specific to the language
 
1634
<b>&minus;&minus;fields</b> option.</p></td>
 
1635
</table>
 
1636
 
 
1637
<p style="margin-left:11%;"><i>implementation</i></p>
 
1638
 
 
1639
<p style="margin-left:29%;">When present, this indicates a
 
1640
limited implementation (abstract vs. concrete) of a routine
 
1641
or class, where <i>value</i> is specific to the language
2208
1642
(&quot;virtual&quot; or &quot;pure virtual&quot; for C++;
2209
1643
&quot;abstract&quot; for Java).</p>
2210
 
</td>
2211
 
</table>
2212
 
<!-- TABS -->
 
1644
 
2213
1645
<table width="100%" border=0 rules="none" frame="void"
2214
 
       cols="4" cellspacing="0" cellpadding="0">
2215
 
<tr valign="top" align="left">
2216
 
<td width="11%"></td>
2217
 
<td width="14%">
2218
 
 
2219
 
<p><i>inherits</i></p>
2220
 
</td>
2221
 
<td width="4%"></td>
2222
 
<td width="71%">
2223
 
 
2224
 
<p>When present, <i>value</i>. is a comma-separated list of
2225
 
classes from which this class is derived (i.e. inherits
2226
 
from).</p>
2227
 
</td>
2228
 
<tr valign="top" align="left">
2229
 
<td width="11%"></td>
2230
 
<td width="14%">
2231
 
 
2232
 
<p><i>signature</i></p>
2233
 
</td>
2234
 
<td width="4%"></td>
2235
 
<td width="71%">
 
1646
       cellspacing="0" cellpadding="0">
 
1647
<tr valign="top" align="left">
 
1648
<td width="11%"></td>
 
1649
<td width="14%">
 
1650
 
 
1651
 
 
1652
 
 
1653
<p style="margin-top: 1em" valign="top"><i>inherits</i></p> </td>
 
1654
<td width="4%"></td>
 
1655
<td width="71%">
 
1656
 
 
1657
 
 
1658
<p style="margin-top: 1em" valign="top">When present,
 
1659
<i>value</i>. is a comma-separated list of classes from
 
1660
which this class is derived (i.e. inherits from).</p></td>
 
1661
<tr valign="top" align="left">
 
1662
<td width="11%"></td>
 
1663
<td width="14%">
 
1664
 
 
1665
 
 
1666
<p><i>signature</i></p></td>
 
1667
<td width="4%"></td>
 
1668
<td width="71%">
 
1669
 
2236
1670
 
2237
1671
<p>When present, <i>value</i> is a language-dependent
2238
1672
representation of the signature of a routine. A routine
2239
1673
signature in its complete form specifies the return type of
2240
1674
a routine and its formal argument list. This extension field
2241
1675
is presently supported only for C-based languages and does
2242
 
not include the return type.</p>
2243
 
</td>
2244
 
</table>
2245
 
<!-- INDENTATION -->
2246
 
<table width="100%" border=0 rules="none" frame="void"
2247
 
       cols="2" cellspacing="0" cellpadding="0">
2248
 
<tr valign="top" align="left">
2249
 
<td width="11%"></td>
2250
 
<td width="89%">
2251
 
<p>In addition, information on the scope of the tag
2252
 
definition may be available, with the key portion equal to
2253
 
some language-dependent construct name and its value the
2254
 
name declared for that construct in the program. This scope
2255
 
entry indicates the scope in which the tag was found. For
2256
 
example, a tag generated for a C structure member would have
2257
 
a scope looking like &quot;struct:myStruct&quot;.</p>
2258
 
</td>
2259
 
</table>
 
1676
not include the return type.</p></td>
 
1677
</table>
 
1678
 
 
1679
<p style="margin-left:11%; margin-top: 1em">In addition,
 
1680
information on the scope of the tag definition may be
 
1681
available, with the key portion equal to some
 
1682
language-dependent construct name and its value the name
 
1683
declared for that construct in the program. This scope entry
 
1684
indicates the scope in which the tag was found. For example,
 
1685
a tag generated for a C structure member would have a scope
 
1686
looking like &quot;struct:myStruct&quot;.</p>
 
1687
 
2260
1688
<a name="HOW TO USE WITH VI"></a>
2261
1689
<h2>HOW TO USE WITH VI</h2>
2262
 
<!-- INDENTATION -->
2263
 
<table width="100%" border=0 rules="none" frame="void"
2264
 
       cols="2" cellspacing="0" cellpadding="0">
2265
 
<tr valign="top" align="left">
2266
 
<td width="11%"></td>
2267
 
<td width="89%">
2268
 
<p>Vi will, by default, expect a tag file by the name
2269
 
&quot;tags&quot; in the current directory. Once the tag file
2270
 
is built, the following commands exercise the tag indexing
2271
 
feature:</p>
2272
 
</td>
2273
 
</table>
2274
 
<!-- TABS -->
2275
 
<table width="100%" border=0 rules="none" frame="void"
2276
 
       cols="4" cellspacing="0" cellpadding="0">
2277
 
<tr valign="top" align="left">
2278
 
<td width="11%"></td>
2279
 
<td width="14%">
2280
 
 
2281
 
<p><b>vi &minus;t tag</b></p>
2282
 
</td>
2283
 
<td width="4%"></td>
2284
 
<td width="71%">
2285
 
 
2286
 
<p>Start vi and position the cursor at the file and line
2287
 
where &quot;tag&quot; is defined.</p>
2288
 
</td>
2289
 
<tr valign="top" align="left">
2290
 
<td width="11%"></td>
2291
 
<td width="14%">
2292
 
 
2293
 
<p><b>:ta tag</b></p>
2294
 
</td>
2295
 
<td width="4%"></td>
2296
 
<td width="71%">
2297
 
 
2298
 
<p>Find a tag.</p>
2299
 
</td>
2300
 
<tr valign="top" align="left">
2301
 
<td width="11%"></td>
2302
 
<td width="14%">
2303
 
 
2304
 
<p><b>Ctrl-]</b></p>
2305
 
</td>
2306
 
<td width="4%"></td>
2307
 
<td width="71%">
2308
 
 
2309
 
<p>Find the tag under the cursor.</p>
2310
 
</td>
2311
 
<tr valign="top" align="left">
2312
 
<td width="11%"></td>
2313
 
<td width="14%">
2314
 
 
2315
 
<p><b>Ctrl-T</b></p>
2316
 
</td>
2317
 
<td width="4%"></td>
2318
 
<td width="71%">
2319
 
 
2320
 
<p>Return to previous location before jump to tag (not
2321
 
widely implemented).</p>
2322
 
</td>
2323
 
</table>
 
1690
 
 
1691
 
 
1692
<p style="margin-left:11%; margin-top: 1em">Vi will, by
 
1693
default, expect a tag file by the name &quot;tags&quot; in
 
1694
the current directory. Once the tag file is built, the
 
1695
following commands exercise the tag indexing feature:</p>
 
1696
 
 
1697
<table width="100%" border=0 rules="none" frame="void"
 
1698
       cellspacing="0" cellpadding="0">
 
1699
<tr valign="top" align="left">
 
1700
<td width="11%"></td>
 
1701
<td width="14%">
 
1702
 
 
1703
 
 
1704
<p style="margin-top: 1em" valign="top"><b>vi &minus;t
 
1705
tag</b></p> </td>
 
1706
<td width="4%"></td>
 
1707
<td width="71%">
 
1708
 
 
1709
 
 
1710
<p style="margin-top: 1em" valign="top">Start vi and
 
1711
position the cursor at the file and line where
 
1712
&quot;tag&quot; is defined.</p></td>
 
1713
<tr valign="top" align="left">
 
1714
<td width="11%"></td>
 
1715
<td width="14%">
 
1716
 
 
1717
 
 
1718
<p style="margin-top: 1em" valign="top"><b>:ta tag</b></p></td>
 
1719
<td width="4%"></td>
 
1720
<td width="71%">
 
1721
 
 
1722
 
 
1723
<p style="margin-top: 1em" valign="top">Find a tag.</p></td>
 
1724
<tr valign="top" align="left">
 
1725
<td width="11%"></td>
 
1726
<td width="14%">
 
1727
 
 
1728
 
 
1729
<p style="margin-top: 1em" valign="top"><b>Ctrl-]</b></p></td>
 
1730
<td width="4%"></td>
 
1731
<td width="71%">
 
1732
 
 
1733
 
 
1734
<p style="margin-top: 1em" valign="top">Find the tag under
 
1735
the cursor.</p></td>
 
1736
<tr valign="top" align="left">
 
1737
<td width="11%"></td>
 
1738
<td width="14%">
 
1739
 
 
1740
 
 
1741
<p style="margin-top: 1em" valign="top"><b>Ctrl-T</b></p></td>
 
1742
<td width="4%"></td>
 
1743
<td width="71%">
 
1744
 
 
1745
 
 
1746
<p style="margin-top: 1em" valign="top">Return to previous
 
1747
location before jump to tag (not widely implemented).</p></td>
 
1748
</table>
 
1749
 
2324
1750
<a name="HOW TO USE WITH GNU EMACS"></a>
2325
1751
<h2>HOW TO USE WITH GNU EMACS</h2>
2326
 
<!-- INDENTATION -->
2327
 
<table width="100%" border=0 rules="none" frame="void"
2328
 
       cols="2" cellspacing="0" cellpadding="0">
2329
 
<tr valign="top" align="left">
2330
 
<td width="11%"></td>
2331
 
<td width="89%">
2332
 
<p>Emacs will, by default, expect a tag file by the name
2333
 
&quot;TAGS&quot; in the current directory. Once the tag file
2334
 
is built, the following commands exercise the tag indexing
2335
 
feature:</p>
2336
 
</td>
2337
 
</table>
2338
 
<!-- INDENTATION -->
2339
 
<table width="100%" border=0 rules="none" frame="void"
2340
 
       cols="2" cellspacing="0" cellpadding="0">
2341
 
<tr valign="top" align="left">
2342
 
<td width="11%"></td>
2343
 
<td width="89%">
2344
 
<p><b>M-x visit&minus;tags&minus;table &lt;RET&gt; FILE
2345
 
&lt;RET&gt;</b></p></td>
2346
 
</table>
2347
 
<!-- INDENTATION -->
2348
 
<table width="100%" border=0 rules="none" frame="void"
2349
 
       cols="2" cellspacing="0" cellpadding="0">
2350
 
<tr valign="top" align="left">
2351
 
<td width="26%"></td>
2352
 
<td width="74%">
2353
 
<p>Select the tag file, &quot;FILE&quot;, to use.</p>
2354
 
</td>
2355
 
</table>
2356
 
<!-- INDENTATION -->
2357
 
<table width="100%" border=0 rules="none" frame="void"
2358
 
       cols="2" cellspacing="0" cellpadding="0">
2359
 
<tr valign="top" align="left">
2360
 
<td width="11%"></td>
2361
 
<td width="89%">
2362
 
<p><b>M-. [TAG] &lt;RET&gt;</b></p></td>
2363
 
</table>
2364
 
<!-- INDENTATION -->
2365
 
<table width="100%" border=0 rules="none" frame="void"
2366
 
       cols="2" cellspacing="0" cellpadding="0">
2367
 
<tr valign="top" align="left">
2368
 
<td width="26%"></td>
2369
 
<td width="74%">
2370
 
<p>Find the first definition of TAG. The default tag is the
2371
 
identifier under the cursor.</p>
2372
 
</td>
2373
 
</table>
2374
 
<!-- TABS -->
2375
 
<table width="100%" border=0 rules="none" frame="void"
2376
 
       cols="5" cellspacing="0" cellpadding="0">
2377
 
<tr valign="top" align="left">
2378
 
<td width="11%"></td>
2379
 
<td width="11%">
2380
 
 
2381
 
<p><b>M-*</b></p>
2382
 
</td>
2383
 
<td width="4%"></td>
2384
 
<td width="72%">
2385
 
 
2386
 
<p>Pop back to where you previously invoked
2387
 
&quot;M-.&quot;.</p>
2388
 
</td>
2389
 
<td width="2%">
2390
 
</td>
2391
 
<tr valign="top" align="left">
2392
 
<td width="11%"></td>
2393
 
<td width="11%">
2394
 
 
2395
 
<p><b>C-u M-.</b></p>
2396
 
</td>
2397
 
<td width="4%"></td>
2398
 
<td width="72%">
2399
 
 
2400
 
<p>Find the next definition for the last tag.</p>
2401
 
</td>
2402
 
<td width="2%">
2403
 
</td>
2404
 
</table>
2405
 
<!-- INDENTATION -->
2406
 
<table width="100%" border=0 rules="none" frame="void"
2407
 
       cols="2" cellspacing="0" cellpadding="0">
2408
 
<tr valign="top" align="left">
2409
 
<td width="11%"></td>
2410
 
<td width="89%">
2411
 
<p>For more commands, see the <i>Tags</i> topic in the Emacs
2412
 
info document.</p>
2413
 
</td>
2414
 
</table>
 
1752
 
 
1753
 
 
1754
<p style="margin-left:11%; margin-top: 1em">Emacs will, by
 
1755
default, expect a tag file by the name &quot;TAGS&quot; in
 
1756
the current directory. Once the tag file is built, the
 
1757
following commands exercise the tag indexing feature:
 
1758
<b><br>
 
1759
M-x visit&minus;tags&minus;table &lt;RET&gt; FILE
 
1760
&lt;RET&gt;</b></p>
 
1761
 
 
1762
<p style="margin-left:26%;">Select the tag file,
 
1763
&quot;FILE&quot;, to use.</p>
 
1764
 
 
1765
<p style="margin-left:11%;"><b>M-. [TAG]
 
1766
&lt;RET&gt;</b></p>
 
1767
 
 
1768
<p style="margin-left:26%;">Find the first definition of
 
1769
TAG. The default tag is the identifier under the cursor.</p>
 
1770
 
 
1771
<table width="100%" border=0 rules="none" frame="void"
 
1772
       cellspacing="0" cellpadding="0">
 
1773
<tr valign="top" align="left">
 
1774
<td width="11%"></td>
 
1775
<td width="11%">
 
1776
 
 
1777
 
 
1778
<p style="margin-top: 1em" valign="top"><b>M-*</b></p></td>
 
1779
<td width="4%"></td>
 
1780
<td width="72%">
 
1781
 
 
1782
 
 
1783
<p style="margin-top: 1em" valign="top">Pop back to where
 
1784
you previously invoked &quot;M-.&quot;.</p></td>
 
1785
<td width="2%">
 
1786
</td>
 
1787
<tr valign="top" align="left">
 
1788
<td width="11%"></td>
 
1789
<td width="11%">
 
1790
 
 
1791
 
 
1792
<p style="margin-top: 1em" valign="top"><b>C-u M-.</b></p></td>
 
1793
<td width="4%"></td>
 
1794
<td width="72%">
 
1795
 
 
1796
 
 
1797
<p style="margin-top: 1em" valign="top">Find the next
 
1798
definition for the last tag.</p></td>
 
1799
<td width="2%">
 
1800
</td>
 
1801
</table>
 
1802
 
 
1803
<p style="margin-left:11%; margin-top: 1em">For more
 
1804
commands, see the <i>Tags</i> topic in the Emacs info
 
1805
document.</p>
 
1806
 
2415
1807
<a name="HOW TO USE WITH NEDIT"></a>
2416
1808
<h2>HOW TO USE WITH NEDIT</h2>
2417
 
<!-- INDENTATION -->
2418
 
<table width="100%" border=0 rules="none" frame="void"
2419
 
       cols="2" cellspacing="0" cellpadding="0">
2420
 
<tr valign="top" align="left">
2421
 
<td width="11%"></td>
2422
 
<td width="89%">
2423
 
<p>NEdit version 5.1 and later can handle the new extended
2424
 
tag file format (see <b>&minus;&minus;format</b>). To make
2425
 
NEdit use the tag file, select &quot;File&minus;&gt;Load
2426
 
Tags File&quot;. To jump to the definition for a tag,
2427
 
highlight the word, the press Ctrl-D. NEdit 5.1 can can read
2428
 
multiple tag files from different directories. Setting the X
2429
 
resource nedit.tagFile to the name of a tag file instructs
2430
 
NEdit to automatically load that tag file at startup
2431
 
time.</p>
2432
 
</td>
2433
 
</table>
 
1809
 
 
1810
 
 
1811
<p style="margin-left:11%; margin-top: 1em">NEdit version
 
1812
5.1 and later can handle the new extended tag file format
 
1813
(see <b>&minus;&minus;format</b>). To make NEdit use the tag
 
1814
file, select &quot;File&minus;&gt;Load Tags File&quot;. To
 
1815
jump to the definition for a tag, highlight the word, the
 
1816
press Ctrl-D. NEdit 5.1 can can read multiple tag files from
 
1817
different directories. Setting the X resource nedit.tagFile
 
1818
to the name of a tag file instructs NEdit to automatically
 
1819
load that tag file at startup time.</p>
 
1820
 
2434
1821
<a name="CAVEATS"></a>
2435
1822
<h2>CAVEATS</h2>
2436
 
<!-- INDENTATION -->
2437
 
<table width="100%" border=0 rules="none" frame="void"
2438
 
       cols="2" cellspacing="0" cellpadding="0">
2439
 
<tr valign="top" align="left">
2440
 
<td width="11%"></td>
2441
 
<td width="89%">
2442
 
<p>Because <b>ctags</b> is neither a preprocessor nor a
2443
 
compiler, use of preprocessor macros can fool <b>ctags</b>
2444
 
into either missing tags or improperly generating
2445
 
inappropriate tags. Although <b>ctags</b> has been designed
2446
 
to handle certain common cases, this is the single biggest
2447
 
cause of reported problems. In particular, the use of
2448
 
preprocessor constructs which alter the textual syntax of C
2449
 
can fool <b>ctags</b>. You can work around many such
2450
 
problems by using the <b>&minus;I</b> option.</p>
2451
 
<!-- INDENTATION -->
2452
 
<p>Note that since <b>ctags</b> generates patterns for
2453
 
locating tags (see the <b>&minus;&minus;excmd</b> option),
2454
 
it is entirely possible that the wrong line may be found by
2455
 
your editor if there exists another source line which is
2456
 
identical to the line containing the tag. The following
2457
 
example demonstrates this condition:</p>
2458
 
</td>
2459
 
</table>
2460
 
<!-- INDENTATION -->
2461
 
<table width="100%" border=0 rules="none" frame="void"
2462
 
       cols="2" cellspacing="0" cellpadding="0">
2463
 
<tr valign="top" align="left">
2464
 
<td width="22%"></td>
2465
 
<td width="78%">
2466
 
<p>int variable;</p>
2467
 
<!-- INDENTATION -->
2468
 
<p>/* ... */<br>
2469
 
void foo(variable)<br>
2470
 
int variable;<br>
2471
 
{</p></td>
2472
 
</table>
2473
 
<!-- INDENTATION -->
2474
 
<table width="100%" border=0 rules="none" frame="void"
2475
 
       cols="2" cellspacing="0" cellpadding="0">
2476
 
<tr valign="top" align="left">
2477
 
<td width="28%"></td>
2478
 
<td width="72%">
2479
 
<p>/* ... */</p></td>
2480
 
</table>
2481
 
<!-- INDENTATION -->
2482
 
<table width="100%" border=0 rules="none" frame="void"
2483
 
       cols="2" cellspacing="0" cellpadding="0">
2484
 
<tr valign="top" align="left">
2485
 
<td width="22%"></td>
2486
 
<td width="78%">
2487
 
<p>}</p></td>
2488
 
</table>
2489
 
<!-- INDENTATION -->
2490
 
<table width="100%" border=0 rules="none" frame="void"
2491
 
       cols="2" cellspacing="0" cellpadding="0">
2492
 
<tr valign="top" align="left">
2493
 
<td width="11%"></td>
2494
 
<td width="89%">
2495
 
<p>Depending upon which editor you use and where in the code
2496
 
you happen to be, it is possible that the search pattern may
2497
 
locate the local parameter declaration in foo() before it
2498
 
finds the actual global variable definition, since the lines
2499
 
(and therefore their search patterns are identical). This
2500
 
can be avoided by use of the
2501
 
<b>&minus;&minus;excmd</b>=<i>n</i> option.</p>
2502
 
</td>
2503
 
</table>
 
1823
 
 
1824
 
 
1825
<p style="margin-left:11%; margin-top: 1em">Because
 
1826
<b>ctags</b> is neither a preprocessor nor a compiler, use
 
1827
of preprocessor macros can fool <b>ctags</b> into either
 
1828
missing tags or improperly generating inappropriate tags.
 
1829
Although <b>ctags</b> has been designed to handle certain
 
1830
common cases, this is the single biggest cause of reported
 
1831
problems. In particular, the use of preprocessor constructs
 
1832
which alter the textual syntax of C can fool <b>ctags</b>.
 
1833
You can work around many such problems by using the
 
1834
<b>&minus;I</b> option.</p>
 
1835
 
 
1836
<p style="margin-left:11%; margin-top: 1em">Note that since
 
1837
<b>ctags</b> generates patterns for locating tags (see the
 
1838
<b>&minus;&minus;excmd</b> option), it is entirely possible
 
1839
that the wrong line may be found by your editor if there
 
1840
exists another source line which is identical to the line
 
1841
containing the tag. The following example demonstrates this
 
1842
condition:</p>
 
1843
 
 
1844
<p style="margin-left:22%; margin-top: 1em">int
 
1845
variable;</p>
 
1846
 
 
1847
<p style="margin-left:22%; margin-top: 1em">/* ... */ <br>
 
1848
void foo(variable) <br>
 
1849
int variable; <br>
 
1850
{</p>
 
1851
 
 
1852
<p style="margin-left:28%;">/* ... */</p>
 
1853
 
 
1854
<p style="margin-left:22%;">}</p>
 
1855
 
 
1856
<p style="margin-left:11%; margin-top: 1em">Depending upon
 
1857
which editor you use and where in the code you happen to be,
 
1858
it is possible that the search pattern may locate the local
 
1859
parameter declaration in foo() before it finds the actual
 
1860
global variable definition, since the lines (and therefore
 
1861
their search patterns are identical). This can be avoided by
 
1862
use of the <b>&minus;&minus;excmd</b>=<i>n</i> option.</p>
 
1863
 
2504
1864
<a name="BUGS"></a>
2505
1865
<h2>BUGS</h2>
2506
 
<!-- INDENTATION -->
2507
 
<table width="100%" border=0 rules="none" frame="void"
2508
 
       cols="2" cellspacing="0" cellpadding="0">
2509
 
<tr valign="top" align="left">
2510
 
<td width="11%"></td>
2511
 
<td width="89%">
2512
 
<p><b>Ctags</b> has more options than <b>ls</b>(1).</p>
2513
 
<!-- INDENTATION -->
2514
 
<p>When parsing a C++ member function definition (e.g.
 
1866
 
 
1867
 
 
1868
<p style="margin-left:11%; margin-top: 1em"><b>Ctags</b>
 
1869
has more options than <b>ls</b>(1).</p>
 
1870
 
 
1871
<p style="margin-left:11%; margin-top: 1em">When parsing a
 
1872
C++ member function definition (e.g.
2515
1873
&quot;className::function&quot;), <b>ctags</b> cannot
2516
1874
determine whether the scope specifier is a class name or a
2517
1875
namespace specifier and always lists it as a class name in
2523
1881
are not known when the tag is generated for the function
2524
1882
definition. It will, however be available for prototypes
2525
1883
(e.g <b>&minus;&minus;c++&minus;kinds</b>=<i>+p</i>).</p>
2526
 
<!-- INDENTATION -->
2527
 
<p>No qualified tags are generated for language objects
2528
 
inherited into a class.</p>
2529
 
</td>
2530
 
</table>
 
1884
 
 
1885
<p style="margin-left:11%; margin-top: 1em">No qualified
 
1886
tags are generated for language objects inherited into a
 
1887
class.</p>
 
1888
 
2531
1889
<a name="ENVIRONMENT VARIABLES"></a>
2532
1890
<h2>ENVIRONMENT VARIABLES</h2>
2533
 
<!-- TABS -->
 
1891
 
 
1892
 
2534
1893
<table width="100%" border=0 rules="none" frame="void"
2535
 
       cols="4" cellspacing="0" cellpadding="0">
2536
 
<tr valign="top" align="left">
2537
 
<td width="11%"></td>
2538
 
<td width="9%">
2539
 
 
2540
 
<p><b>CTAGS</b></p>
2541
 
</td>
2542
 
<td width="3%"></td>
2543
 
<td width="77%">
2544
 
 
2545
 
<p>If this environment variable exists, it will be expected
2546
 
to contain a set of default options which are read when
2547
 
<b>ctags</b> starts, after the configuration files listed in
2548
 
<b>FILES</b>, below, are read, but before any command line
2549
 
options are read. Options appearing on the command line will
2550
 
override options specified in this variable. Only options
2551
 
will be read from this variable. Note that all white space
2552
 
in this variable is considered a separator, making it
2553
 
impossible to pass an option parameter containing an
2554
 
embedded space. If this is a problem, use a configuration
2555
 
file instead.</p>
2556
 
</td>
2557
 
<tr valign="top" align="left">
2558
 
<td width="11%"></td>
2559
 
<td width="9%">
2560
 
 
2561
 
<p><b>ETAGS</b></p>
2562
 
</td>
2563
 
<td width="3%"></td>
2564
 
<td width="77%">
 
1894
       cellspacing="0" cellpadding="0">
 
1895
<tr valign="top" align="left">
 
1896
<td width="11%"></td>
 
1897
<td width="9%">
 
1898
 
 
1899
 
 
1900
<p style="margin-top: 1em" valign="top"><b>CTAGS</b></p></td>
 
1901
<td width="3%"></td>
 
1902
<td width="77%">
 
1903
 
 
1904
 
 
1905
<p style="margin-top: 1em" valign="top">If this environment
 
1906
variable exists, it will be expected to contain a set of
 
1907
default options which are read when <b>ctags</b> starts,
 
1908
after the configuration files listed in <b>FILES</b>, below,
 
1909
are read, but before any command line options are read.
 
1910
Options appearing on the command line will override options
 
1911
specified in this variable. Only options will be read from
 
1912
this variable. Note that all white space in this variable is
 
1913
considered a separator, making it impossible to pass an
 
1914
option parameter containing an embedded space. If this is a
 
1915
problem, use a configuration file instead.</p></td>
 
1916
<tr valign="top" align="left">
 
1917
<td width="11%"></td>
 
1918
<td width="9%">
 
1919
 
 
1920
 
 
1921
<p><b>ETAGS</b></p></td>
 
1922
<td width="3%"></td>
 
1923
<td width="77%">
 
1924
 
2565
1925
 
2566
1926
<p>Similar to the <b>CTAGS</b> variable above, this
2567
1927
variable, if found, will be read when <b>etags</b> starts.
2568
1928
If this variable is not found, <b>etags</b> will try to use
2569
 
<b>CTAGS</b> instead.</p>
2570
 
</td>
 
1929
<b>CTAGS</b> instead.</p></td>
2571
1930
<tr valign="top" align="left">
2572
1931
<td width="11%"></td>
2573
1932
<td width="9%">
2574
1933
 
2575
 
<p><b>TMPDIR</b></p>
2576
 
</td>
 
1934
 
 
1935
<p><b>TMPDIR</b></p></td>
2577
1936
<td width="3%"></td>
2578
1937
<td width="77%">
2579
1938
 
 
1939
 
2580
1940
<p>On Unix-like hosts where mkstemp() is available, the
2581
1941
value of this variable specifies the directory in which to
2582
1942
place temporary files. This can be useful if the size of a
2590
1950
operating system. If the sort utility of the operating
2591
1951
system is being used, it will generally observe this
2592
1952
variable also. Note that if <b>ctags</b> is setuid, the
2593
 
value of TMPDIR will be ignored.</p>
2594
 
</td>
 
1953
value of TMPDIR will be ignored.</p></td>
2595
1954
</table>
 
1955
 
2596
1956
<a name="FILES"></a>
2597
1957
<h2>FILES</h2>
2598
 
<!-- INDENTATION -->
2599
 
<table width="100%" border=0 rules="none" frame="void"
2600
 
       cols="2" cellspacing="0" cellpadding="0">
2601
 
<tr valign="top" align="left">
2602
 
<td width="11%"></td>
2603
 
<td width="89%">
2604
 
<p><i>/ctags.cnf (on MSDOS, MSWindows only)<br>
2605
 
/etc/ctags.conf<br>
2606
 
/usr/local/etc/ctags.conf<br>
2607
 
$HOME/.ctags<br>
2608
 
$HOME/ctags.cnf (on MSDOS, MSWindows only)<br>
2609
 
.ctags<br>
2610
 
ctags.cnf (on MSDOS, MSWindows only)</i></p></td>
2611
 
</table>
2612
 
<!-- INDENTATION -->
2613
 
<table width="100%" border=0 rules="none" frame="void"
2614
 
       cols="2" cellspacing="0" cellpadding="0">
2615
 
<tr valign="top" align="left">
2616
 
<td width="22%"></td>
2617
 
<td width="78%">
2618
 
<p>If any of these configuration files exist, each will be
2619
 
expected to contain a set of default options which are read
2620
 
in the order listed when <b>ctags</b> starts, but before the
2621
 
<b>CTAGS</b> environment variable is read or any command
2622
 
line options are read. This makes it possible to set up
2623
 
site-wide, personal or project-level defaults. It is
2624
 
possible to compile <b>ctags</b> to read an additional
2625
 
configuration file before any of those shown above, which
2626
 
will be indicated if the output produced by the
2627
 
<b>&minus;&minus;version</b> option lists the
2628
 
&quot;custom-conf&quot; feature. Options appearing in the
2629
 
<b>CTAGS</b> environment variable or on the command line
2630
 
will override options specified in these files. Only options
2631
 
will be read from these files. Note that the option files
2632
 
are read in line-oriented mode in which spaces are
 
1958
 
 
1959
 
 
1960
<p style="margin-left:11%; margin-top: 1em"><i>/ctags.cnf
 
1961
(on MSDOS, MSWindows only) <br>
 
1962
/etc/ctags.conf <br>
 
1963
/usr/local/etc/ctags.conf <br>
 
1964
$HOME/.ctags <br>
 
1965
$HOME/ctags.cnf (on MSDOS, MSWindows only) <br>
 
1966
.ctags <br>
 
1967
ctags.cnf (on MSDOS, MSWindows only)</i></p>
 
1968
 
 
1969
<p style="margin-left:22%;">If any of these configuration
 
1970
files exist, each will be expected to contain a set of
 
1971
default options which are read in the order listed when
 
1972
<b>ctags</b> starts, but before the <b>CTAGS</b> environment
 
1973
variable is read or any command line options are read. This
 
1974
makes it possible to set up site-wide, personal or
 
1975
project-level defaults. It is possible to compile
 
1976
<b>ctags</b> to read an additional configuration file before
 
1977
any of those shown above, which will be indicated if the
 
1978
output produced by the <b>&minus;&minus;version</b> option
 
1979
lists the &quot;custom-conf&quot; feature. Options appearing
 
1980
in the <b>CTAGS</b> environment variable or on the command
 
1981
line will override options specified in these files. Only
 
1982
options will be read from these files. Note that the option
 
1983
files are read in line-oriented mode in which spaces are
2633
1984
significant (since shell quoting is not possible). Each line
2634
1985
of the file is read as one command line parameter (as if it
2635
1986
were quoted with single quotes). Therefore, use new lines to
2636
1987
indicate separate command-line arguments.</p>
2637
 
</td>
2638
 
</table>
2639
 
<!-- TABS -->
 
1988
 
2640
1989
<table width="100%" border=0 rules="none" frame="void"
2641
 
       cols="5" cellspacing="0" cellpadding="0">
 
1990
       cellspacing="0" cellpadding="0">
2642
1991
<tr valign="top" align="left">
2643
1992
<td width="11%"></td>
2644
1993
<td width="6%">
2645
1994
 
2646
 
<p><i>tags</i></p>
2647
 
</td>
 
1995
 
 
1996
<p style="margin-top: 1em" valign="top"><i>tags</i></p></td>
2648
1997
<td width="5%"></td>
2649
1998
<td width="58%">
2650
1999
 
2651
 
<p>The default tag file created by <b>ctags</b>.</p>
2652
 
</td>
 
2000
 
 
2001
<p style="margin-top: 1em" valign="top">The default tag
 
2002
file created by <b>ctags</b>.</p></td>
2653
2003
<td width="20%">
2654
2004
</td>
2655
2005
<tr valign="top" align="left">
2656
2006
<td width="11%"></td>
2657
2007
<td width="6%">
2658
2008
 
2659
 
<p><i>TAGS</i></p>
2660
 
</td>
 
2009
 
 
2010
<p style="margin-top: 1em" valign="top"><i>TAGS</i></p></td>
2661
2011
<td width="5%"></td>
2662
2012
<td width="58%">
2663
2013
 
2664
 
<p>The default tag file created by <b>etags</b>.</p>
2665
 
</td>
 
2014
 
 
2015
<p style="margin-top: 1em" valign="top">The default tag
 
2016
file created by <b>etags</b>.</p></td>
2666
2017
<td width="20%">
2667
2018
</td>
2668
2019
</table>
 
2020
 
2669
2021
<a name="SEE ALSO"></a>
2670
2022
<h2>SEE ALSO</h2>
2671
 
<!-- INDENTATION -->
2672
 
<table width="100%" border=0 rules="none" frame="void"
2673
 
       cols="2" cellspacing="0" cellpadding="0">
2674
 
<tr valign="top" align="left">
2675
 
<td width="11%"></td>
2676
 
<td width="89%">
2677
 
<p>The official Exuberant Ctags web site at:</p>
2678
 
</td>
2679
 
</table>
2680
 
<!-- INDENTATION -->
2681
 
<table width="100%" border=0 rules="none" frame="void"
2682
 
       cols="2" cellspacing="0" cellpadding="0">
2683
 
<tr valign="top" align="left">
2684
 
<td width="22%"></td>
2685
 
<td width="78%">
2686
 
<p>http://ctags.sourceforge.net</p></td>
2687
 
</table>
2688
 
<!-- INDENTATION -->
2689
 
<table width="100%" border=0 rules="none" frame="void"
2690
 
       cols="2" cellspacing="0" cellpadding="0">
2691
 
<tr valign="top" align="left">
2692
 
<td width="11%"></td>
2693
 
<td width="89%">
2694
 
<p>Also <b>ex</b>(1), <b>vi</b>(1), <b>elvis</b>, or, better
2695
 
yet, <b>vim</b>, the official editor of <b>ctags</b>. For
2696
 
more information on <b>vim</b>, see the VIM Pages web site
 
2023
 
 
2024
 
 
2025
<p style="margin-left:11%; margin-top: 1em">The official
 
2026
Exuberant Ctags web site at:</p>
 
2027
 
 
2028
 
 
2029
<p style="margin-left:22%; margin-top: 1em">http://ctags.sourceforge.net</p>
 
2030
 
 
2031
<p style="margin-left:11%; margin-top: 1em">Also
 
2032
<b>ex</b>(1), <b>vi</b>(1), <b>elvis</b>, or, better yet,
 
2033
<b>vim</b>, the official editor of <b>ctags</b>. For more
 
2034
information on <b>vim</b>, see the VIM Pages web site
2697
2035
at:</p>
2698
 
</td>
2699
 
</table>
2700
 
<!-- INDENTATION -->
2701
 
<table width="100%" border=0 rules="none" frame="void"
2702
 
       cols="2" cellspacing="0" cellpadding="0">
2703
 
<tr valign="top" align="left">
2704
 
<td width="22%"></td>
2705
 
<td width="78%">
2706
 
<p>http://www.vim.org/</p></td>
2707
 
</table>
 
2036
 
 
2037
 
 
2038
<p style="margin-left:22%; margin-top: 1em">http://www.vim.org/</p>
 
2039
 
2708
2040
<a name="AUTHOR"></a>
2709
2041
<h2>AUTHOR</h2>
2710
 
<!-- INDENTATION -->
2711
 
<table width="100%" border=0 rules="none" frame="void"
2712
 
       cols="2" cellspacing="0" cellpadding="0">
2713
 
<tr valign="top" align="left">
2714
 
<td width="11%"></td>
2715
 
<td width="89%">
2716
 
<p>Darren Hiebert &lt;dhiebert at
2717
 
users.sourceforge.net&gt;<br>
 
2042
 
 
2043
 
 
2044
<p style="margin-left:11%; margin-top: 1em">Darren Hiebert
 
2045
&lt;dhiebert at users.sourceforge.net&gt; <br>
2718
2046
http://DarrenHiebert.com/</p>
2719
 
</td>
2720
 
</table>
 
2047
 
2721
2048
<a name="MOTIVATION"></a>
2722
2049
<h2>MOTIVATION</h2>
2723
 
<!-- INDENTATION -->
2724
 
<table width="100%" border=0 rules="none" frame="void"
2725
 
       cols="2" cellspacing="0" cellpadding="0">
2726
 
<tr valign="top" align="left">
2727
 
<td width="11%"></td>
2728
 
<td width="89%">
2729
 
<p>&quot;Think ye at all times of rendering some service to
2730
 
every member of the human race.&quot;</p>
2731
 
<!-- INDENTATION -->
2732
 
<p>&quot;All effort and exertion put forth by man from the
2733
 
fullness of his heart is worship, if it is prompted by the
2734
 
highest motives and the will to do service to
2735
 
humanity.&quot;</p>
2736
 
</td>
2737
 
</table>
2738
 
<!-- INDENTATION -->
2739
 
<table width="100%" border=0 rules="none" frame="void"
2740
 
       cols="2" cellspacing="0" cellpadding="0">
2741
 
<tr valign="top" align="left">
2742
 
<td width="22%"></td>
2743
 
<td width="78%">
2744
 
<p>&minus;&minus; From the Baha&rsquo;i Writings</p></td>
2745
 
</table>
 
2050
 
 
2051
 
 
2052
<p style="margin-left:11%; margin-top: 1em">&quot;Think ye
 
2053
at all times of rendering some service to every member of
 
2054
the human race.&quot;</p>
 
2055
 
 
2056
<p style="margin-left:11%; margin-top: 1em">&quot;All
 
2057
effort and exertion put forth by man from the fullness of
 
2058
his heart is worship, if it is prompted by the highest
 
2059
motives and the will to do service to humanity.&quot;</p>
 
2060
 
 
2061
<p style="margin-left:22%; margin-top: 1em">&minus;&minus;
 
2062
From the Baha&rsquo;i Writings</p>
 
2063
 
2746
2064
<a name="CREDITS"></a>
2747
2065
<h2>CREDITS</h2>
2748
 
<!-- INDENTATION -->
2749
 
<table width="100%" border=0 rules="none" frame="void"
2750
 
       cols="2" cellspacing="0" cellpadding="0">
2751
 
<tr valign="top" align="left">
2752
 
<td width="11%"></td>
2753
 
<td width="89%">
2754
 
<p>This version of <b>ctags</b> was originally derived from
2755
 
and inspired by the ctags program by Steve Kirkendall
 
2066
 
 
2067
 
 
2068
<p style="margin-left:11%; margin-top: 1em">This version of
 
2069
<b>ctags</b> was originally derived from and inspired by the
 
2070
ctags program by Steve Kirkendall
2756
2071
&lt;kirkenda@cs.pdx.edu&gt; that comes with the Elvis vi
2757
2072
clone (though virtually none of the original code
2758
2073
remains).</p>
2759
 
<!-- INDENTATION -->
2760
 
<p>Credit is also due Bram Moolenaar &lt;Bram@vim.org&gt;,
2761
 
the author of <b>vim</b>, who has devoted so much of his
2762
 
time and energy both to developing the editor as a service
2763
 
to others, and to helping the orphans of Uganda.</p>
2764
 
<!-- INDENTATION -->
2765
 
<p>The section entitled &quot;HOW TO USE WITH GNU
2766
 
EMACS&quot; was shamelessly stolen from the info page for
2767
 
GNU <b>etags</b>.</p>
2768
 
</td>
2769
 
</table>
 
2074
 
 
2075
<p style="margin-left:11%; margin-top: 1em">Credit is also
 
2076
due Bram Moolenaar &lt;Bram@vim.org&gt;, the author of
 
2077
<b>vim</b>, who has devoted so much of his time and energy
 
2078
both to developing the editor as a service to others, and to
 
2079
helping the orphans of Uganda.</p>
 
2080
 
 
2081
<p style="margin-left:11%; margin-top: 1em">The section
 
2082
entitled &quot;HOW TO USE WITH GNU EMACS&quot; was
 
2083
shamelessly stolen from the info page for GNU
 
2084
<b>etags</b>.</p>
2770
2085
<hr>
2771
2086
</body>
2772
2087
</html>