ctags.rb 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,133 @@
1
+ /*
2
+ * $Id: lua.c 443 2006-05-30 04:37:13Z darren $
3
+ *
4
+ * Copyright (c) 2000-2001, Max Ischenko <mfi@ukr.net>.
5
+ *
6
+ * This source code is released for free distribution under the terms of the
7
+ * GNU General Public License.
8
+ *
9
+ * This module contains functions for generating tags for Lua language.
10
+ */
11
+
12
+ /*
13
+ * INCLUDE FILES
14
+ */
15
+ #include "general.h" /* must always come first */
16
+
17
+ #include <string.h>
18
+
19
+ #include "options.h"
20
+ #include "parse.h"
21
+ #include "read.h"
22
+ #include "vstring.h"
23
+
24
+ /*
25
+ * DATA DEFINITIONS
26
+ */
27
+ typedef enum {
28
+ K_FUNCTION
29
+ } luaKind;
30
+
31
+ static kindOption LuaKinds [] = {
32
+ { TRUE, 'f', "function", "functions" }
33
+ };
34
+
35
+ /*
36
+ * FUNCTION DEFINITIONS
37
+ */
38
+
39
+ /* for debugging purposes */
40
+ static void __unused__ print_string (char *p, char *q)
41
+ {
42
+ for ( ; p != q; p++)
43
+ fprintf (errout, "%c", *p);
44
+ fprintf (errout, "\n");
45
+ }
46
+
47
+ /*
48
+ * Helper function.
49
+ * Returns 1 if line looks like a line of Lua code.
50
+ *
51
+ * TODO: Recognize UNIX bang notation.
52
+ * (Lua treat first line as a comment if it starts with #!)
53
+ *
54
+ */
55
+ static boolean is_a_code_line (const unsigned char *line)
56
+ {
57
+ boolean result;
58
+ const unsigned char *p = line;
59
+ while (isspace ((int) *p))
60
+ p++;
61
+ if (p [0] == '\0')
62
+ result = FALSE;
63
+ else if (p [0] == '-' && p [1] == '-')
64
+ result = FALSE;
65
+ else
66
+ result = TRUE;
67
+ return result;
68
+ }
69
+
70
+ static void extract_name (const char *begin, const char *end, vString *name)
71
+ {
72
+ if (begin != NULL && end != NULL && begin < end)
73
+ {
74
+ const char *cp;
75
+
76
+ while (isspace ((int) *begin))
77
+ begin++;
78
+ while (isspace ((int) *end))
79
+ end--;
80
+ if (begin < end)
81
+ {
82
+ for (cp = begin ; cp != end; cp++)
83
+ vStringPut (name, (int) *cp);
84
+ vStringTerminate (name);
85
+
86
+ makeSimpleTag (name, LuaKinds, K_FUNCTION);
87
+ vStringClear (name);
88
+ }
89
+ }
90
+ }
91
+
92
+ static void findLuaTags (void)
93
+ {
94
+ vString *name = vStringNew ();
95
+ const unsigned char *line;
96
+
97
+ while ((line = fileReadLine ()) != NULL)
98
+ {
99
+ const char *p, *q;
100
+
101
+ if (! is_a_code_line (line))
102
+ continue;
103
+
104
+ p = (const char*) strstr ((const char*) line, "function");
105
+ if (p == NULL)
106
+ continue;
107
+
108
+ q = strchr ((const char*) line, '=');
109
+
110
+ if (q == NULL) {
111
+ p = p + 9; /* skip the `function' word */
112
+ q = strchr ((const char*) p, '(');
113
+ extract_name (p, q, name);
114
+ } else {
115
+ p = (const char*) &line[0];
116
+ extract_name (p, q, name);
117
+ }
118
+ }
119
+ vStringDelete (name);
120
+ }
121
+
122
+ extern parserDefinition* LuaParser (void)
123
+ {
124
+ static const char* const extensions [] = { "lua", NULL };
125
+ parserDefinition* def = parserNew ("Lua");
126
+ def->kinds = LuaKinds;
127
+ def->kindCount = KIND_COUNT (LuaKinds);
128
+ def->extensions = extensions;
129
+ def->parser = findLuaTags;
130
+ return def;
131
+ }
132
+
133
+ /* vi:set tabstop=4 shiftwidth=4: */
@@ -0,0 +1,273 @@
1
+ /*
2
+ * $Id: mac.c 443 2006-05-30 04:37:13Z darren $
3
+ *
4
+ * Copyright (c) 2001, Maarten L. Hekkelman
5
+ *
6
+ * Author: Maarten L. Hekkelman <maarten@hekkelman.com>
7
+ * http://www.hekkelman.com
8
+ *
9
+ * This source code is released for free distribution under the terms of the
10
+ * GNU General Public License. It is provided on an as-is basis and no
11
+ * responsibility is accepted for its failure to perform as expected.
12
+ *
13
+ * This module contains support functions for Exuberant Ctags on Macintosh.
14
+ */
15
+
16
+ /*
17
+ * INCLUDE FILES
18
+ */
19
+ #include "general.h"
20
+
21
+ #include <Files.h>
22
+ #include <TextUtils.h>
23
+ #include <stdlib.h>
24
+ #include <string.h>
25
+ #include <stdio.h>
26
+
27
+ /*
28
+ * FUNCTION DEFINITIONS
29
+ */
30
+
31
+ static int get_path(const char* in_unix_path, unsigned char* out_mac_path)
32
+ {
33
+ int l = strlen(in_unix_path);
34
+ int result = 0;
35
+
36
+ if (l > 254)
37
+ result = -1;
38
+ else
39
+ {
40
+ const char* s = in_unix_path;
41
+ char *d = (char*)out_mac_path + 1;
42
+
43
+ if (*s != '/')
44
+ *d++ = ':';
45
+ else
46
+ ++s;
47
+
48
+ while (*s)
49
+ {
50
+ if (s[0] == '.' && s[1] == '.' && s[2] == '/')
51
+ {
52
+ s += 3;
53
+ *d++ = ':';
54
+ }
55
+ else if (s[0] == '.' && s[1] == '/')
56
+ s += 2;
57
+ else if (s[0] == '/')
58
+ {
59
+ *d++ = ':';
60
+
61
+ ++s;
62
+ while (*s == '/')
63
+ ++s;
64
+ }
65
+ else
66
+ *d++ = *s++;
67
+ }
68
+
69
+ out_mac_path[0] = (d - (char*)out_mac_path) - 1;
70
+ }
71
+
72
+ return result;
73
+ }
74
+
75
+ DIR *opendir(const char *dirname)
76
+ {
77
+ DIR* dirp = (DIR*)calloc(1, sizeof(DIR));
78
+
79
+ if (dirp != NULL)
80
+ {
81
+ OSErr err;
82
+ Str255 s;
83
+ CInfoPBRec pb = { 0 };
84
+
85
+ if (strcmp(dirname, "."))
86
+ {
87
+ get_path(dirname, s);
88
+ pb.hFileInfo.ioNamePtr = s;
89
+ }
90
+ else
91
+ pb.hFileInfo.ioNamePtr = NULL;
92
+
93
+ err = PBGetCatInfoSync(&pb);
94
+ if (err != noErr || (pb.hFileInfo.ioFlAttrib & ioDirMask) == 0)
95
+ {
96
+ free(dirp);
97
+ dirp = NULL;
98
+ }
99
+ else
100
+ {
101
+ dirp->file.vRefNum = pb.hFileInfo.ioVRefNum;
102
+ dirp->file.parID = pb.hFileInfo.ioDirID;
103
+ dirp->file.name[0] = '\0';
104
+ dirp->index = 1;
105
+ }
106
+ }
107
+
108
+ return dirp;
109
+ }
110
+
111
+ struct dirent *readdir(DIR *dirp)
112
+ {
113
+ if (dirp)
114
+ {
115
+ CInfoPBRec pb = { 0 };
116
+
117
+ pb.hFileInfo.ioVRefNum = dirp->file.vRefNum;
118
+ pb.hFileInfo.ioDirID = dirp->file.parID;
119
+ pb.hFileInfo.ioFDirIndex = dirp->index++;
120
+ pb.hFileInfo.ioNamePtr = dirp->file.name;
121
+
122
+ if (PBGetCatInfoSync(&pb) != noErr)
123
+ return NULL;
124
+
125
+ memcpy(dirp->ent.d_name, dirp->file.name + 1, dirp->file.name[0]);
126
+ dirp->ent.d_name[dirp->file.name[0]] = 0;
127
+ return &dirp->ent;
128
+ }
129
+ return NULL;
130
+ }
131
+
132
+ int closedir(DIR *dirp)
133
+ {
134
+ if (dirp)
135
+ free(dirp);
136
+ return 0;
137
+ }
138
+
139
+ void rewinddir(DIR *dirp)
140
+ {
141
+ if (dirp)
142
+ dirp->index = 1;
143
+ }
144
+
145
+ int mstat(const char* file, struct stat* st)
146
+ {
147
+ CInfoPBRec pb;
148
+ unsigned char path[256];
149
+ int result = 0;
150
+
151
+ memset(&pb, 0, sizeof(CInfoPBRec));
152
+
153
+ if (strcmp(file, ".") == 0)
154
+ {
155
+ memset(st, 0, sizeof(struct stat));
156
+ st->st_mode = S_IFDIR;
157
+ st->st_ino = -1;
158
+ }
159
+ else
160
+ {
161
+ result = get_path(file, path);
162
+
163
+ if (result == 0)
164
+ {
165
+ pb.hFileInfo.ioNamePtr = path;
166
+
167
+ if (PBGetCatInfoSync(&pb) != noErr)
168
+ result = -1;
169
+ else
170
+ {
171
+ memset(st, 0, sizeof(struct stat));
172
+
173
+ if (pb.hFileInfo.ioFlAttrib & ioDirMask)
174
+ st->st_mode = S_IFDIR;
175
+ else
176
+ st->st_mode = S_IFREG;
177
+
178
+ st->st_ino = pb.hFileInfo.ioFlStBlk;
179
+ st->st_dev = pb.hFileInfo.ioVRefNum;
180
+ st->st_nlink = 1;
181
+ st->st_size = pb.hFileInfo.ioFlLgLen;
182
+ st->st_atime = pb.hFileInfo.ioFlMdDat;
183
+ st->st_mtime = pb.hFileInfo.ioFlMdDat;
184
+ st->st_ctime = pb.hFileInfo.ioFlCrDat;
185
+ }
186
+ }
187
+ }
188
+
189
+ return result;
190
+ }
191
+
192
+ #undef fopen
193
+
194
+ FILE* mfopen(const char* file, const char* mode)
195
+ {
196
+ unsigned char path[256];
197
+
198
+ if (get_path(file, path) == 0)
199
+ {
200
+ int l = path[0];
201
+ memmove(path, path + 1, l);
202
+ path[l] = 0;
203
+ return fopen((char*)path, mode);
204
+ }
205
+ else
206
+ return NULL;
207
+ }
208
+
209
+ char* getcwd(char* out_path, int out_path_len)
210
+ {
211
+ OSErr err = noErr;
212
+ CInfoPBRec pb;
213
+ FSSpec cwd;
214
+
215
+ if (out_path == NULL)
216
+ {
217
+ if (out_path_len < PATH_MAX)
218
+ out_path_len = PATH_MAX;
219
+ out_path = (char*)malloc(out_path_len);
220
+ }
221
+
222
+ err = FSMakeFSSpec(0, 0, "\p:", &cwd);
223
+
224
+ if (cwd.parID == fsRtParID)
225
+ {
226
+ *out_path = '/';
227
+ memcpy(out_path + 1, cwd.name + 1, cwd.name[0]);
228
+ out_path[1 + cwd.name[0]] = 0;
229
+ }
230
+ else
231
+ {
232
+ /* The object isn't a volume */
233
+
234
+ /* Is the object a file or a directory? */
235
+
236
+ char t[PATH_MAX];
237
+ char* s;
238
+
239
+ s = t + PATH_MAX - cwd.name[0] - 1;
240
+ memcpy(s, cwd.name + 1, cwd.name[0]);
241
+ s[cwd.name[0]] = 0;
242
+
243
+ /* Get the ancestor directory names */
244
+ pb.dirInfo.ioNamePtr = cwd.name;
245
+ pb.dirInfo.ioVRefNum = cwd.vRefNum;
246
+ pb.dirInfo.ioDrParID = cwd.parID;
247
+ do /* loop until we have an error or find the root directory */
248
+ {
249
+ pb.dirInfo.ioFDirIndex = -1;
250
+ pb.dirInfo.ioDrDirID = pb.dirInfo.ioDrParID;
251
+ err = PBGetCatInfoSync(&pb);
252
+ if ( err == noErr )
253
+ {
254
+ *--s = '/';
255
+ s -= cwd.name[0];
256
+ memcpy(s, cwd.name + 1, cwd.name[0]);
257
+ }
258
+ }
259
+ while (err == noErr && pb.dirInfo.ioDrDirID != fsRtDirID && s > t + 1);
260
+
261
+ if (s > t + 1)
262
+ {
263
+ *--s = '/';
264
+ strcpy(out_path, s);
265
+ }
266
+ else
267
+ strcpy(out_path, ".");
268
+ }
269
+
270
+ return out_path;
271
+ }
272
+
273
+ /* vi:set tabstop=4 shiftwidth=4: */
@@ -0,0 +1,21 @@
1
+ This file contains a patch to the Linux file /usr/share/magic which will
2
+ allow the "file" command to properly identify tags file producted by
3
+ Exuberant Ctags. To apply the patch, issue the following command as root:
4
+
5
+ patch -p0 < magic.diff
6
+
7
+ *** /usr/share/magic.orig Wed Feb 16 19:04:09 2000
8
+ --- /usr/share/magic Mon Aug 14 20:27:01 2000
9
+ ***************
10
+ *** 1155,1160 ****
11
+ --- 1155,1164 ----
12
+ >84 belong&0x18000000 =0x18000000 undefined fpmode
13
+
14
+ #------------------------------------------------------------------------------
15
+ + # ctags: file (1) magic for Exuberant Ctags files
16
+ + 0 string !_TAG Exuberant Ctags tag file
17
+ +
18
+ + #------------------------------------------------------------------------------
19
+ # database: file(1) magic for various databases
20
+ #
21
+ # extracted from header/code files by Graeme Wilford (eep2gw@ee.surrey.ac.uk)