ctags.rb 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (138) hide show
  1. data/Gemfile +2 -0
  2. data/Rakefile +23 -0
  3. data/ctags.rb.gemspec +23 -0
  4. data/ext/.gitignore +3 -0
  5. data/ext/extconf.rb +15 -0
  6. data/ext/vendor/exuberant-ctags/.gitignore +6 -0
  7. data/ext/vendor/exuberant-ctags/.indent.pro +31 -0
  8. data/ext/vendor/exuberant-ctags/COPYING +340 -0
  9. data/ext/vendor/exuberant-ctags/EXTENDING.html +386 -0
  10. data/ext/vendor/exuberant-ctags/FAQ +371 -0
  11. data/ext/vendor/exuberant-ctags/INSTALL +215 -0
  12. data/ext/vendor/exuberant-ctags/INSTALL.oth +73 -0
  13. data/ext/vendor/exuberant-ctags/MAINTAINERS +88 -0
  14. data/ext/vendor/exuberant-ctags/Makefile.in +222 -0
  15. data/ext/vendor/exuberant-ctags/NEWS +871 -0
  16. data/ext/vendor/exuberant-ctags/README +73 -0
  17. data/ext/vendor/exuberant-ctags/ant.c +42 -0
  18. data/ext/vendor/exuberant-ctags/argproc.c +505 -0
  19. data/ext/vendor/exuberant-ctags/args.c +274 -0
  20. data/ext/vendor/exuberant-ctags/args.h +63 -0
  21. data/ext/vendor/exuberant-ctags/asm.c +387 -0
  22. data/ext/vendor/exuberant-ctags/asp.c +328 -0
  23. data/ext/vendor/exuberant-ctags/awk.c +81 -0
  24. data/ext/vendor/exuberant-ctags/basic.c +203 -0
  25. data/ext/vendor/exuberant-ctags/beta.c +321 -0
  26. data/ext/vendor/exuberant-ctags/c.c +2932 -0
  27. data/ext/vendor/exuberant-ctags/cobol.c +50 -0
  28. data/ext/vendor/exuberant-ctags/config.h.in +277 -0
  29. data/ext/vendor/exuberant-ctags/configure +7704 -0
  30. data/ext/vendor/exuberant-ctags/configure.ac +532 -0
  31. data/ext/vendor/exuberant-ctags/ctags.1 +1186 -0
  32. data/ext/vendor/exuberant-ctags/ctags.h +28 -0
  33. data/ext/vendor/exuberant-ctags/ctags.html +2087 -0
  34. data/ext/vendor/exuberant-ctags/ctags.spec +40 -0
  35. data/ext/vendor/exuberant-ctags/debug.c +113 -0
  36. data/ext/vendor/exuberant-ctags/debug.h +70 -0
  37. data/ext/vendor/exuberant-ctags/descrip.mms +68 -0
  38. data/ext/vendor/exuberant-ctags/dosbatch.c +42 -0
  39. data/ext/vendor/exuberant-ctags/e_amiga.h +24 -0
  40. data/ext/vendor/exuberant-ctags/e_djgpp.h +47 -0
  41. data/ext/vendor/exuberant-ctags/e_mac.h +143 -0
  42. data/ext/vendor/exuberant-ctags/e_msoft.h +76 -0
  43. data/ext/vendor/exuberant-ctags/e_os2.h +37 -0
  44. data/ext/vendor/exuberant-ctags/e_qdos.h +34 -0
  45. data/ext/vendor/exuberant-ctags/e_riscos.h +58 -0
  46. data/ext/vendor/exuberant-ctags/e_vms.h +31 -0
  47. data/ext/vendor/exuberant-ctags/eiffel.c +1352 -0
  48. data/ext/vendor/exuberant-ctags/entry.c +847 -0
  49. data/ext/vendor/exuberant-ctags/entry.h +103 -0
  50. data/ext/vendor/exuberant-ctags/erlang.c +189 -0
  51. data/ext/vendor/exuberant-ctags/flex.c +2243 -0
  52. data/ext/vendor/exuberant-ctags/fortran.c +2197 -0
  53. data/ext/vendor/exuberant-ctags/general.h +127 -0
  54. data/ext/vendor/exuberant-ctags/get.c +669 -0
  55. data/ext/vendor/exuberant-ctags/get.h +50 -0
  56. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/all-wcprops +47 -0
  57. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/entries +112 -0
  58. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/README.txt.svn-base +5 -0
  59. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regcomp.c.svn-base +3818 -0
  60. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regex.c.svn-base +74 -0
  61. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regex.h.svn-base +575 -0
  62. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regex_internal.c.svn-base +1713 -0
  63. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regex_internal.h.svn-base +773 -0
  64. data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regexec.c.svn-base +4338 -0
  65. data/ext/vendor/exuberant-ctags/gnu_regex/README.txt +5 -0
  66. data/ext/vendor/exuberant-ctags/gnu_regex/regcomp.c +3818 -0
  67. data/ext/vendor/exuberant-ctags/gnu_regex/regex.c +74 -0
  68. data/ext/vendor/exuberant-ctags/gnu_regex/regex.h +575 -0
  69. data/ext/vendor/exuberant-ctags/gnu_regex/regex_internal.c +1713 -0
  70. data/ext/vendor/exuberant-ctags/gnu_regex/regex_internal.h +773 -0
  71. data/ext/vendor/exuberant-ctags/gnu_regex/regexec.c +4338 -0
  72. data/ext/vendor/exuberant-ctags/html.c +49 -0
  73. data/ext/vendor/exuberant-ctags/jscript.c +1572 -0
  74. data/ext/vendor/exuberant-ctags/keyword.c +258 -0
  75. data/ext/vendor/exuberant-ctags/keyword.h +34 -0
  76. data/ext/vendor/exuberant-ctags/lisp.c +139 -0
  77. data/ext/vendor/exuberant-ctags/lregex.c +704 -0
  78. data/ext/vendor/exuberant-ctags/lua.c +133 -0
  79. data/ext/vendor/exuberant-ctags/mac.c +273 -0
  80. data/ext/vendor/exuberant-ctags/magic.diff +21 -0
  81. data/ext/vendor/exuberant-ctags/main.c +584 -0
  82. data/ext/vendor/exuberant-ctags/main.h +32 -0
  83. data/ext/vendor/exuberant-ctags/maintainer.mak +476 -0
  84. data/ext/vendor/exuberant-ctags/make.c +217 -0
  85. data/ext/vendor/exuberant-ctags/matlab.c +44 -0
  86. data/ext/vendor/exuberant-ctags/mk_bc3.mak +46 -0
  87. data/ext/vendor/exuberant-ctags/mk_bc5.mak +49 -0
  88. data/ext/vendor/exuberant-ctags/mk_djg.mak +18 -0
  89. data/ext/vendor/exuberant-ctags/mk_manx.mak +65 -0
  90. data/ext/vendor/exuberant-ctags/mk_mingw.mak +31 -0
  91. data/ext/vendor/exuberant-ctags/mk_mpw.mak +130 -0
  92. data/ext/vendor/exuberant-ctags/mk_mvc.mak +40 -0
  93. data/ext/vendor/exuberant-ctags/mk_os2.mak +104 -0
  94. data/ext/vendor/exuberant-ctags/mk_qdos.mak +100 -0
  95. data/ext/vendor/exuberant-ctags/mk_sas.mak +63 -0
  96. data/ext/vendor/exuberant-ctags/mkinstalldirs +40 -0
  97. data/ext/vendor/exuberant-ctags/ocaml.c +1842 -0
  98. data/ext/vendor/exuberant-ctags/options.c +1842 -0
  99. data/ext/vendor/exuberant-ctags/options.h +155 -0
  100. data/ext/vendor/exuberant-ctags/parse.c +677 -0
  101. data/ext/vendor/exuberant-ctags/parse.h +129 -0
  102. data/ext/vendor/exuberant-ctags/parsers.h +63 -0
  103. data/ext/vendor/exuberant-ctags/pascal.c +267 -0
  104. data/ext/vendor/exuberant-ctags/perl.c +382 -0
  105. data/ext/vendor/exuberant-ctags/php.c +237 -0
  106. data/ext/vendor/exuberant-ctags/python.c +771 -0
  107. data/ext/vendor/exuberant-ctags/qdos.c +106 -0
  108. data/ext/vendor/exuberant-ctags/read.c +569 -0
  109. data/ext/vendor/exuberant-ctags/read.h +116 -0
  110. data/ext/vendor/exuberant-ctags/readtags.c +959 -0
  111. data/ext/vendor/exuberant-ctags/readtags.h +252 -0
  112. data/ext/vendor/exuberant-ctags/rexx.c +39 -0
  113. data/ext/vendor/exuberant-ctags/routines.c +891 -0
  114. data/ext/vendor/exuberant-ctags/routines.h +134 -0
  115. data/ext/vendor/exuberant-ctags/ruby.c +408 -0
  116. data/ext/vendor/exuberant-ctags/scheme.c +111 -0
  117. data/ext/vendor/exuberant-ctags/sh.c +115 -0
  118. data/ext/vendor/exuberant-ctags/slang.c +41 -0
  119. data/ext/vendor/exuberant-ctags/sml.c +212 -0
  120. data/ext/vendor/exuberant-ctags/sort.c +230 -0
  121. data/ext/vendor/exuberant-ctags/sort.h +32 -0
  122. data/ext/vendor/exuberant-ctags/source.mak +122 -0
  123. data/ext/vendor/exuberant-ctags/sql.c +2112 -0
  124. data/ext/vendor/exuberant-ctags/strlist.c +281 -0
  125. data/ext/vendor/exuberant-ctags/strlist.h +54 -0
  126. data/ext/vendor/exuberant-ctags/tcl.c +116 -0
  127. data/ext/vendor/exuberant-ctags/tex.c +524 -0
  128. data/ext/vendor/exuberant-ctags/verilog.c +340 -0
  129. data/ext/vendor/exuberant-ctags/vhdl.c +835 -0
  130. data/ext/vendor/exuberant-ctags/vim.c +636 -0
  131. data/ext/vendor/exuberant-ctags/vstring.c +232 -0
  132. data/ext/vendor/exuberant-ctags/vstring.h +85 -0
  133. data/ext/vendor/exuberant-ctags/yacc.c +40 -0
  134. data/lib/ctags/exuberant.rb +45 -0
  135. data/lib/ctags/version.rb +3 -0
  136. data/lib/ctags.rb +6 -0
  137. data/test/test_ctags.rb +24 -0
  138. metadata +233 -0
@@ -0,0 +1,2087 @@
1
+ <!-- Creator : groff version 1.19.2 -->
2
+ <!-- CreationDate: Thu Jul 9 17:03:58 2009 -->
3
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
4
+ "http://www.w3.org/TR/html4/loose.dtd">
5
+ <html>
6
+ <head>
7
+ <meta name="generator" content="groff -Thtml, see www.gnu.org">
8
+ <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
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>
15
+ <title>CTAGS</title>
16
+
17
+ </head>
18
+ <body>
19
+
20
+ <h1 align=center>CTAGS</h1>
21
+
22
+ <a href="#NAME">NAME</a><br>
23
+ <a href="#SYNOPSIS">SYNOPSIS</a><br>
24
+ <a href="#DESCRIPTION">DESCRIPTION</a><br>
25
+ <a href="#SOURCE FILES">SOURCE FILES</a><br>
26
+ <a href="#OPTIONS">OPTIONS</a><br>
27
+ <a href="#OPERATIONAL DETAILS">OPERATIONAL DETAILS</a><br>
28
+ <a href="#TAG FILE FORMAT">TAG FILE FORMAT</a><br>
29
+ <a href="#HOW TO USE WITH VI">HOW TO USE WITH VI</a><br>
30
+ <a href="#HOW TO USE WITH GNU EMACS">HOW TO USE WITH GNU EMACS</a><br>
31
+ <a href="#HOW TO USE WITH NEDIT">HOW TO USE WITH NEDIT</a><br>
32
+ <a href="#CAVEATS">CAVEATS</a><br>
33
+ <a href="#BUGS">BUGS</a><br>
34
+ <a href="#ENVIRONMENT VARIABLES">ENVIRONMENT VARIABLES</a><br>
35
+ <a href="#FILES">FILES</a><br>
36
+ <a href="#SEE ALSO">SEE ALSO</a><br>
37
+ <a href="#AUTHOR">AUTHOR</a><br>
38
+ <a href="#MOTIVATION">MOTIVATION</a><br>
39
+ <a href="#CREDITS">CREDITS</a><br>
40
+
41
+ <hr>
42
+
43
+
44
+ <a name="NAME"></a>
45
+ <h2>NAME</h2>
46
+
47
+
48
+ <p style="margin-left:11%; margin-top: 1em">ctags &minus;
49
+ Generate tag files for source code</p>
50
+
51
+ <a name="SYNOPSIS"></a>
52
+ <h2>SYNOPSIS</h2>
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
+
59
+ <a name="DESCRIPTION"></a>
60
+ <h2>DESCRIPTION</h2>
61
+
62
+
63
+ <p style="margin-left:11%; margin-top: 1em">The
64
+ <b>ctags</b> and <b>etags</b> programs (hereinafter
65
+ collectively referred to as <b>ctags</b>, except where
66
+ distinguished) generate an index (or &quot;tag&quot;) file
67
+ for a variety of language objects found in <i>file(s)</i>.
68
+ This tag file allows these items to be quickly and easily
69
+ located by a text editor or other utility. A &quot;tag&quot;
70
+ signifies a language object for which an index entry is
71
+ available (or, alternatively, the index entry created for
72
+ that object).</p>
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
88
+ Editor), <b>JED</b>, <b>jEdit</b>, <b>Mined</b>,
89
+ <b>NEdit</b> (Nirvana Edit), <b>TSE</b> (The SemWare
90
+ Editor), <b>UltraEdit</b>, <b>WorkSpace</b>, <b>X2</b>,
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
99
+ <b>&minus;&minus;list&minus;kinds</b> options.</p>
100
+
101
+ <a name="SOURCE FILES"></a>
102
+ <h2>SOURCE FILES</h2>
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
+
130
+ <a name="OPTIONS"></a>
131
+ <h2>OPTIONS</h2>
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
153
+ <b>&minus;&minus;sort</b>=<i>yes</i>). Note further that
154
+ &quot;=<i>1</i>&quot; and &quot;=<i>on</i>&quot; are
155
+ considered synonyms for &quot;=<i>yes</i>&quot;, and that
156
+ &quot;=<i>0</i>&quot; and &quot;=<i>off</i>&quot; are
157
+ considered synonyms for &quot;=<i>no</i>&quot;.</p>
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
173
+ <b>&minus;&minus;list&minus;languages</b> option for a
174
+ complete list of the built-in language names.</p>
175
+
176
+ <table width="100%" border=0 rules="none" frame="void"
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
+
200
+
201
+ <p>Use backward searching patterns (e.g. ?pattern?).
202
+ [Ignored in etags mode]</p></td>
203
+ <tr valign="top" align="left">
204
+ <td width="11%"></td>
205
+ <td width="3%">
206
+
207
+
208
+ <p><b>&minus;e</b></p></td>
209
+ <td width="4%"></td>
210
+ <td width="82%">
211
+
212
+
213
+ <p>Enable etags mode, which will create a tag file for use
214
+ with the Emacs editor. Alternatively, if <b>ctags</b> is
215
+ invoked by a name containing the string &quot;etags&quot;
216
+ (either by renaming, or creating a link to, the executable),
217
+ etags mode will be enabled. This option must appear before
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
228
+ &quot;&minus;&quot;, then the tag file is written to
229
+ standard output instead. <b>Ctags</b> will stubbornly refuse
230
+ to take orders if <i>tagfile</i> exists and its first line
231
+ contains something other than a valid tags line. This will
232
+ save your neck if you mistakenly type &quot;ctags &minus;f
233
+ *.c&quot;, which would otherwise overwrite your first C file
234
+ with the tags generated by the rest! It will also refuse to
235
+ accept a multi-character file name which begins with a
236
+ &rsquo;&minus;&rsquo; (dash) character, since this most
237
+ likely means that you left out the tag file name and this
238
+ option tried to grab the next option as the file name. If
239
+ you really want to name your output tag file
240
+ &quot;&minus;ugly&quot;, specify it as
241
+ &quot;./&minus;ugly&quot;. This option must appear before
242
+ the first file name. If this option is specified more than
243
+ once, only the last will apply.</p>
244
+
245
+ <table width="100%" border=0 rules="none" frame="void"
246
+ cellspacing="0" cellpadding="0">
247
+ <tr valign="top" align="left">
248
+ <td width="11%"></td>
249
+ <td width="3%">
250
+
251
+
252
+
253
+ <p style="margin-top: 1em" valign="top"><b>&minus;F</b></p> </td>
254
+ <td width="4%"></td>
255
+ <td width="82%">
256
+
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
289
+ <b>&minus;&minus;langmap</b> or
290
+ <b>&minus;&minus;language&minus;force</b> option.</p>
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
310
+ <i>identifier&minus;list</i> is &rsquo;@&rsquo;,
311
+ &rsquo;.&rsquo; or a pathname separator (&rsquo;/&rsquo; or
312
+ &rsquo;\&rsquo;), or the first two characters specify a
313
+ drive letter (e.g. &quot;C:&quot;), the parameter
314
+ <i>identifier&minus;list</i> will be interpreted as a
315
+ filename from which to read a list of identifiers, one per
316
+ input line. Otherwise, <i>identifier&minus;list</i> is a
317
+ list of identifiers (or identifier pairs) to be specially
318
+ handled, each delimited by a either a comma or by white
319
+ space (in which case the list should be quoted to keep the
320
+ entire list as one command line argument). Multiple
321
+ <b>&minus;I</b> options may be supplied. To clear the list
322
+ of ignore identifiers, supply a single dash
323
+ (&quot;&minus;&quot;) for <i>identifier&minus;list</i>.</p>
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
352
+ function definition could possibly even cause the rest of
353
+ the file to be skipped over while trying to complete the
354
+ definition. Specifying <b>&minus;I</b>
355
+ <i>MODULE_VERSION+</i> would avoid such a problem.</p>
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
+
452
+
453
+ <p>Equivalent to <b>&minus;&minus;sort</b>=<i>no</i> (i.e.
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
+
475
+
476
+ <p>This option is silently ignored for
477
+ backward-compatibility with the ctags of SVR4 Unix.</p></td>
478
+ <tr valign="top" align="left">
479
+ <td width="11%"></td>
480
+ <td width="3%">
481
+
482
+
483
+ <p><b>&minus;x</b></p></td>
484
+ <td width="4%"></td>
485
+ <td width="82%">
486
+
487
+
488
+ <p>Print a tabular, human-readable cross reference (xref)
489
+ file to standard output instead of generating a tag file.
490
+ The information contained in the output includes: the tag
491
+ name; the kind of tag; the line number, file name, and
492
+ source line (with extra white space condensed) of the file
493
+ which defines the tag. No tag file is written and all
494
+ options affecting tag file output will be ignored. Example
495
+ applications for this feature are generating a listing of
496
+ all functions located in a source file (e.g. <b>ctags
497
+ &minus;x &minus;&minus;c&minus;kinds</b>=<i>f file</i>), or
498
+ generating a list of all externally visible global variables
499
+ located in a source file (e.g. <b>ctags &minus;x
500
+ &minus;&minus;c&minus;kinds</b>=<i>v</i>
501
+ <b>&minus;&minus;file&minus;scope</b>=<i>no file</i>). This
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
564
+ etags mode]</p>
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">
572
+ <tr valign="top" align="left">
573
+ <td width="18%"></td>
574
+ <td width="10%">
575
+
576
+
577
+ <p style="margin-top: 1em" valign="top"><i>number</i></p></td>
578
+ <td width="4%"></td>
579
+ <td width="68%">
580
+
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
+
680
+
681
+ <p>In this mode, patterns are generally used with a few
682
+ exceptions. For C, line numbers are used for macro
683
+ definition tags. This was the default format generated by
684
+ the original <b>ctags</b> and is, therefore, retained as the
685
+ default for this option. For Fortran, line numbers are used
686
+ for common blocks because their corresponding source lines
687
+ are generally identical, making pattern searches useless for
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
943
+ determine when the output for each file is finished. Note
944
+ that if the file name read is a directory and
945
+ <b>&minus;&minus;recurse</b> is enabled, this string will be
946
+ printed only one once at the end of all tags found for by
947
+ descending the directory. This string will always be
948
+ separated from the last tag line for the file by its
949
+ terminating newline. This option is quite esoteric and is
950
+ empty by default. This option must appear before the first
951
+ file name.</p>
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
994
+ <b>&minus;&minus;list&minus;languages</b> option for a
995
+ complete list). The parameter <i>kinds</i> is a group of
996
+ one-letter flags designating kinds of tags (particular to
997
+ the language) to either include or exclude from the output.
998
+ The specific sets of flags recognized for each language,
999
+ their meanings and defaults may be list using the
1000
+ <b>&minus;&minus;list&minus;kinds</b> option. Each letter or
1001
+ group of letters may be preceded by either &rsquo;+&rsquo;
1002
+ to add it to, or &rsquo;&minus;&rsquo; to remove it from,
1003
+ the default set. In the absence of any preceding
1004
+ &rsquo;+&rsquo; or &rsquo;&minus;&rsquo; sign, only those
1005
+ kinds explicitly listed in <i>kinds</i> will be included in
1006
+ the output (i.e. overriding the default for the specified
1007
+ language).</p>
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
1013
+ <b>&minus;&minus;c&minus;kinds</b>=<i>+px&minus;d</i>; to
1014
+ include only tags for functions, use
1015
+ <b>&minus;&minus;c&minus;kinds</b>=<i>f</i>.</p>
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
1027
+ <i>&minus;&minus;regex&minus;&lt;LANG&gt;</i> to define how
1028
+ its tags are found.</p>
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
1035
+ <b>&minus;&minus;list&minus;maps</b> option). Each
1036
+ comma-separated <i>map</i> consists of the language name
1037
+ (either a built-in or user-defined language), a colon, and a
1038
+ list of file extensions and/or file name patterns. A file
1039
+ extension is specified by preceding the extension with a
1040
+ period (e.g. &quot;.c&quot;). A file name pattern is
1041
+ specified by enclosing the pattern in parentheses (e.g.
1042
+ &quot;([Mm]akefile)&quot;). If appropriate support is
1043
+ available from the runtime library of your C compiler, then
1044
+ the file name pattern may contain the usual shell wildcards
1045
+ common on Unix (be sure to quote the option parameter to
1046
+ protect the wildcards from being expanded by the shell
1047
+ before being passed to <b>ctags</b>). You can determine if
1048
+ shell wildcards are available on your platform by examining
1049
+ the output of the <b>&minus;&minus;version</b> option, which
1050
+ will include &quot;+wildcards&quot; in the compiled feature
1051
+ list; otherwise, the file name patterns are matched against
1052
+ file names using a simple textual comparison. When mapping a
1053
+ file extension, it will first be unmapped from any other
1054
+ languages.</p>
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
1063
+ &quot;<b>&minus;&minus;langmap</b>=<i>c:.c.x</i>&quot;; to
1064
+ also add files with extensions of .j as Java language files,
1065
+ specify
1066
+ &quot;<b>&minus;&minus;langmap</b>=<i>c:.c.x,java:+.j</i>&quot;.
1067
+ To map makefiles (e.g. files named either
1068
+ &quot;Makefile&quot;, &quot;makefile&quot;, or having the
1069
+ extension &quot;.mak&quot;) to a language called
1070
+ &quot;make&quot;, specify
1071
+ &quot;<b>&minus;&minus;langmap</b>=<i>make:([Mm]akefile).mak</i>&quot;.
1072
+ To map files having no extension, specify a period not
1073
+ followed by a non-period character (e.g. &quot;.&quot;,
1074
+ &quot;..x&quot;, &quot;.x.&quot;). To clear the mapping for
1075
+ a particular language (thus inhibiting automatic generation
1076
+ of tags for that language), specify an empty extension list
1077
+ (e.g.
1078
+ &quot;<b>&minus;&minus;langmap</b>=<i>fortran:</i>&quot;).
1079
+ To restore the default language mappings for all a
1080
+ particular language, supply the keyword &quot;default&quot;
1081
+ for the mapping. To specify restore the default language
1082
+ mappings for all languages, specify
1083
+ &quot;<b>&minus;&minus;langmap</b>=<i>default</i>&quot;.
1084
+ Note that file extensions are tested before file name
1085
+ patterns when inferring the language of a file.</p>
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
1109
+ &rsquo;&minus;&rsquo;, the current list will be cleared
1110
+ before adding or removing the languages in <i>list</i>.
1111
+ Until a &rsquo;&minus;&rsquo; is encountered, each language
1112
+ in the list will be added to the current list. As either the
1113
+ &rsquo;+&rsquo; or &rsquo;&minus;&rsquo; is encountered in
1114
+ the list, the languages following it are added or removed
1115
+ from the current list, respectively. Thus, it becomes simple
1116
+ to replace the current list with a new one, or to add or
1117
+ remove languages from the current list. The actual list of
1118
+ files for which tags will be generated depends upon the
1119
+ language extension mapping in effect (see the
1120
+ <b>&minus;&minus;langmap</b> option). Note that all
1121
+ languages, including user-defined languages are enabled
1122
+ unless explicitly disabled using this option. Language names
1123
+ included in <i>list</i> may be any built-in language or one
1124
+ previously defined with <b>&minus;&minus;langdef</b>. The
1125
+ default is &quot;all&quot;, which is also accepted as a
1126
+ valid argument. See the
1127
+ <b>&minus;&minus;list&minus;languages</b> option for a
1128
+ complete list of the built-in language names.</p>
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
1155
+ <b>&minus;&minus;excmd</b>=<i>number</i> (<b>&minus;n</b>)
1156
+ option. Also, you may have to use either the
1157
+ <b>&minus;&minus;langmap</b> or
1158
+ <b>&minus;&minus;language&minus;force</b> option if the
1159
+ extension of the preprocessor output file is not known to
1160
+ <b>ctags</b>.</p>
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
1178
+ <b>&minus;&minus;&lt;LANG&gt;&minus;kinds</b> option. Note
1179
+ that some languages and/or tag kinds may be implemented
1180
+ using regular expressions and may not be available if regex
1181
+ support is not compiled into <b>ctags</b> (see the
1182
+ <b>&minus;&minus;regex&minus;&lt;LANG&gt;</b> option). Each
1183
+ kind listed is enabled unless followed by
1184
+ &quot;[off]&quot;.</p>
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
1201
+ <b>&minus;&minus;language&minus;force</b>,
1202
+ <b>&minus;&minus;languages</b>,
1203
+ <b>&minus;&minus;&lt;LANG&gt;&minus;kinds</b>, and
1204
+ <b>&minus;&minus;regex&minus;&lt;LANG&gt;</b> options.</p>
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,
1242
+ <i>regexp</i>, defines an extended regular expression
1243
+ (roughly that used by <b>egrep</b>(1)), which is used to
1244
+ locate a single source line containing a tag and may specify
1245
+ tab characters using \t. When a matching line is found, a
1246
+ tag will be generated for the name defined by
1247
+ <i>replacement</i>, which generally will contain the special
1248
+ back-references \1 through \9 to refer to matching
1249
+ sub-expression groups within <i>regexp</i>. The
1250
+ &rsquo;/&rsquo; separator characters shown in the parameter
1251
+ to the option can actually be replaced by any character.
1252
+ Note that whichever separator character is used will have to
1253
+ be escaped with a backslash (&rsquo;\&rsquo;) character
1254
+ wherever it is used in the parameter as something other than
1255
+ a separator. The regular expression defined by this option
1256
+ is added to the current list of regular expressions for the
1257
+ specified language unless the parameter is omitted, in which
1258
+ case the current list is cleared.</p>
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
1276
+ &quot;<i>r,regex</i>&quot;. Finally, <i>flags</i> are one or
1277
+ more single-letter characters having the following effect
1278
+ upon the interpretation of <i>regexp</i>:</p>
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
+
1392
+ <a name="OPERATIONAL DETAILS"></a>
1393
+ <h2>OPERATIONAL DETAILS</h2>
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
1413
+ requirements on C code as do legacy implementations. Older
1414
+ implementations of ctags tended to rely upon certain
1415
+ formatting assumptions in order to help it resolve coding
1416
+ dilemmas caused by preprocessor conditionals.</p>
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
1423
+ conditional (except in the special case of &quot;#if
1424
+ 0&quot;, in which case it follows only the last branch). The
1425
+ reason for this is that failing to pursue only one branch
1426
+ can result in ambiguous syntax, as in the following
1427
+ example:</p>
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
1451
+ follow conditional preprocessor branches, but instead falls
1452
+ back to relying upon a closing brace (&quot;}&quot;) in
1453
+ column 1 as indicating the end of a block once any brace
1454
+ imbalance results from following a #if conditional
1455
+ branch.</p>
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
1467
+ automatically ignored and the previous name will be
1468
+ used.</p>
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
1476
+ &quot;operator&lt;&lt;&quot;).</p>
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
+
1482
+ <a name="TAG FILE FORMAT"></a>
1483
+ <h2>TAG FILE FORMAT</h2>
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
1579
+ <b>&minus;&minus;tag&minus;relative</b> option for how this
1580
+ behavior can be modified.</p>
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
1588
+ <b>&minus;&minus;fields</b> option. The possible keys and
1589
+ the meaning of their values are as follows:</p>
1590
+
1591
+ <table width="100%" border=0 rules="none" frame="void"
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
+
1615
+
1616
+ <p>Indicates that the tag has file-limited visibility. This
1617
+ key has no corresponding value.</p></td>
1618
+ <tr valign="top" align="left">
1619
+ <td width="11%"></td>
1620
+ <td width="9%">
1621
+
1622
+
1623
+ <p><i>kind</i></p></td>
1624
+ <td width="9%"></td>
1625
+ <td width="71%">
1626
+
1627
+
1628
+ <p>Indicates the type, or kind, of tag. Its value is either
1629
+ one of the corresponding one-letter flags described under
1630
+ the various <b>&minus;&minus;&lt;LANG&gt;&minus;kinds</b>
1631
+ options above, or a full name. It is permitted (and is, in
1632
+ fact, the default) for the key portion of this field to be
1633
+ omitted. The optional behaviors are controlled with the
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
1642
+ (&quot;virtual&quot; or &quot;pure virtual&quot; for C++;
1643
+ &quot;abstract&quot; for Java).</p>
1644
+
1645
+ <table width="100%" border=0 rules="none" frame="void"
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
+
1670
+
1671
+ <p>When present, <i>value</i> is a language-dependent
1672
+ representation of the signature of a routine. A routine
1673
+ signature in its complete form specifies the return type of
1674
+ a routine and its formal argument list. This extension field
1675
+ is presently supported only for C-based languages and does
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
+
1688
+ <a name="HOW TO USE WITH VI"></a>
1689
+ <h2>HOW TO USE WITH VI</h2>
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
+
1750
+ <a name="HOW TO USE WITH GNU EMACS"></a>
1751
+ <h2>HOW TO USE WITH GNU EMACS</h2>
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
+
1807
+ <a name="HOW TO USE WITH NEDIT"></a>
1808
+ <h2>HOW TO USE WITH NEDIT</h2>
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
+
1821
+ <a name="CAVEATS"></a>
1822
+ <h2>CAVEATS</h2>
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
+
1864
+ <a name="BUGS"></a>
1865
+ <h2>BUGS</h2>
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.
1873
+ &quot;className::function&quot;), <b>ctags</b> cannot
1874
+ determine whether the scope specifier is a class name or a
1875
+ namespace specifier and always lists it as a class name in
1876
+ the scope portion of the extension fields. Also, if a C++
1877
+ function is defined outside of the class declaration (the
1878
+ usual case), the access specification (i.e. public,
1879
+ protected, or private) and implementation information (e.g.
1880
+ virtual, pure virtual) contained in the function declaration
1881
+ are not known when the tag is generated for the function
1882
+ definition. It will, however be available for prototypes
1883
+ (e.g <b>&minus;&minus;c++&minus;kinds</b>=<i>+p</i>).</p>
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
+
1889
+ <a name="ENVIRONMENT VARIABLES"></a>
1890
+ <h2>ENVIRONMENT VARIABLES</h2>
1891
+
1892
+
1893
+ <table width="100%" border=0 rules="none" frame="void"
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
+
1925
+
1926
+ <p>Similar to the <b>CTAGS</b> variable above, this
1927
+ variable, if found, will be read when <b>etags</b> starts.
1928
+ If this variable is not found, <b>etags</b> will try to use
1929
+ <b>CTAGS</b> instead.</p></td>
1930
+ <tr valign="top" align="left">
1931
+ <td width="11%"></td>
1932
+ <td width="9%">
1933
+
1934
+
1935
+ <p><b>TMPDIR</b></p></td>
1936
+ <td width="3%"></td>
1937
+ <td width="77%">
1938
+
1939
+
1940
+ <p>On Unix-like hosts where mkstemp() is available, the
1941
+ value of this variable specifies the directory in which to
1942
+ place temporary files. This can be useful if the size of a
1943
+ temporary file becomes too large to fit on the partition
1944
+ holding the default temporary directory defined at
1945
+ compilation time. <b>ctags</b> creates temporary files only
1946
+ if either (1) an emacs-style tag file is being generated,
1947
+ (2) the tag file is being sent to standard output, or (3)
1948
+ the program was compiled to use an internal sort algorithm
1949
+ to sort the tag files instead of the the sort utility of the
1950
+ operating system. If the sort utility of the operating
1951
+ system is being used, it will generally observe this
1952
+ variable also. Note that if <b>ctags</b> is setuid, the
1953
+ value of TMPDIR will be ignored.</p></td>
1954
+ </table>
1955
+
1956
+ <a name="FILES"></a>
1957
+ <h2>FILES</h2>
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
1984
+ significant (since shell quoting is not possible). Each line
1985
+ of the file is read as one command line parameter (as if it
1986
+ were quoted with single quotes). Therefore, use new lines to
1987
+ indicate separate command-line arguments.</p>
1988
+
1989
+ <table width="100%" border=0 rules="none" frame="void"
1990
+ cellspacing="0" cellpadding="0">
1991
+ <tr valign="top" align="left">
1992
+ <td width="11%"></td>
1993
+ <td width="6%">
1994
+
1995
+
1996
+ <p style="margin-top: 1em" valign="top"><i>tags</i></p></td>
1997
+ <td width="5%"></td>
1998
+ <td width="58%">
1999
+
2000
+
2001
+ <p style="margin-top: 1em" valign="top">The default tag
2002
+ file created by <b>ctags</b>.</p></td>
2003
+ <td width="20%">
2004
+ </td>
2005
+ <tr valign="top" align="left">
2006
+ <td width="11%"></td>
2007
+ <td width="6%">
2008
+
2009
+
2010
+ <p style="margin-top: 1em" valign="top"><i>TAGS</i></p></td>
2011
+ <td width="5%"></td>
2012
+ <td width="58%">
2013
+
2014
+
2015
+ <p style="margin-top: 1em" valign="top">The default tag
2016
+ file created by <b>etags</b>.</p></td>
2017
+ <td width="20%">
2018
+ </td>
2019
+ </table>
2020
+
2021
+ <a name="SEE ALSO"></a>
2022
+ <h2>SEE ALSO</h2>
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
2035
+ at:</p>
2036
+
2037
+
2038
+ <p style="margin-left:22%; margin-top: 1em">http://www.vim.org/</p>
2039
+
2040
+ <a name="AUTHOR"></a>
2041
+ <h2>AUTHOR</h2>
2042
+
2043
+
2044
+ <p style="margin-left:11%; margin-top: 1em">Darren Hiebert
2045
+ &lt;dhiebert at users.sourceforge.net&gt; <br>
2046
+ http://DarrenHiebert.com/</p>
2047
+
2048
+ <a name="MOTIVATION"></a>
2049
+ <h2>MOTIVATION</h2>
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
+
2064
+ <a name="CREDITS"></a>
2065
+ <h2>CREDITS</h2>
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
2071
+ &lt;kirkenda@cs.pdx.edu&gt; that comes with the Elvis vi
2072
+ clone (though virtually none of the original code
2073
+ remains).</p>
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>
2085
+ <hr>
2086
+ </body>
2087
+ </html>