tidy-ext 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +4 -0
- data/LICENSE +50 -0
- data/README +12 -0
- data/Rakefile +60 -0
- data/VERSION +1 -0
- data/ext/tidy/access.c +3310 -0
- data/ext/tidy/access.h +279 -0
- data/ext/tidy/alloc.c +107 -0
- data/ext/tidy/attrask.c +209 -0
- data/ext/tidy/attrdict.c +2398 -0
- data/ext/tidy/attrdict.h +122 -0
- data/ext/tidy/attrget.c +213 -0
- data/ext/tidy/attrs.c +1911 -0
- data/ext/tidy/attrs.h +374 -0
- data/ext/tidy/buffio.c +232 -0
- data/ext/tidy/buffio.h +118 -0
- data/ext/tidy/charsets.c +1032 -0
- data/ext/tidy/charsets.h +14 -0
- data/ext/tidy/clean.c +2674 -0
- data/ext/tidy/clean.h +87 -0
- data/ext/tidy/config.c +1746 -0
- data/ext/tidy/config.h +153 -0
- data/ext/tidy/entities.c +419 -0
- data/ext/tidy/entities.h +24 -0
- data/ext/tidy/extconf.rb +5 -0
- data/ext/tidy/fileio.c +106 -0
- data/ext/tidy/fileio.h +46 -0
- data/ext/tidy/forward.h +69 -0
- data/ext/tidy/iconvtc.c +105 -0
- data/ext/tidy/iconvtc.h +15 -0
- data/ext/tidy/istack.c +373 -0
- data/ext/tidy/lexer.c +3825 -0
- data/ext/tidy/lexer.h +617 -0
- data/ext/tidy/localize.c +1882 -0
- data/ext/tidy/mappedio.c +329 -0
- data/ext/tidy/mappedio.h +16 -0
- data/ext/tidy/message.h +207 -0
- data/ext/tidy/parser.c +4408 -0
- data/ext/tidy/parser.h +76 -0
- data/ext/tidy/platform.h +636 -0
- data/ext/tidy/pprint.c +2276 -0
- data/ext/tidy/pprint.h +93 -0
- data/ext/tidy/ruby-tidy.c +195 -0
- data/ext/tidy/streamio.c +1407 -0
- data/ext/tidy/streamio.h +222 -0
- data/ext/tidy/tagask.c +286 -0
- data/ext/tidy/tags.c +955 -0
- data/ext/tidy/tags.h +235 -0
- data/ext/tidy/tidy-int.h +129 -0
- data/ext/tidy/tidy.h +1097 -0
- data/ext/tidy/tidyenum.h +622 -0
- data/ext/tidy/tidylib.c +1751 -0
- data/ext/tidy/tmbstr.c +306 -0
- data/ext/tidy/tmbstr.h +92 -0
- data/ext/tidy/utf8.c +539 -0
- data/ext/tidy/utf8.h +52 -0
- data/ext/tidy/version.h +14 -0
- data/ext/tidy/win32tc.c +795 -0
- data/ext/tidy/win32tc.h +19 -0
- data/spec/spec_helper.rb +5 -0
- data/spec/tidy/compat_spec.rb +44 -0
- data/spec/tidy/remote_uri_spec.rb +14 -0
- data/spec/tidy/test1.html +5 -0
- data/spec/tidy/tidy_spec.rb +34 -0
- metadata +125 -0
data/ext/tidy/parser.h
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
#ifndef __PARSER_H__
|
2
|
+
#define __PARSER_H__
|
3
|
+
|
4
|
+
/* parser.h -- HTML Parser
|
5
|
+
|
6
|
+
(c) 1998-2007 (W3C) MIT, ERCIM, Keio University
|
7
|
+
See tidy.h for the copyright notice.
|
8
|
+
|
9
|
+
CVS Info :
|
10
|
+
|
11
|
+
$Author: arnaud02 $
|
12
|
+
$Date: 2007/05/30 16:47:31 $
|
13
|
+
$Revision: 1.14 $
|
14
|
+
|
15
|
+
*/
|
16
|
+
|
17
|
+
#include "forward.h"
|
18
|
+
|
19
|
+
Bool TY_(CheckNodeIntegrity)(Node *node);
|
20
|
+
|
21
|
+
Bool TY_(TextNodeEndWithSpace)( Lexer *lexer, Node *node );
|
22
|
+
|
23
|
+
/*
|
24
|
+
used to determine how attributes
|
25
|
+
without values should be printed
|
26
|
+
this was introduced to deal with
|
27
|
+
user defined tags e.g. Cold Fusion
|
28
|
+
*/
|
29
|
+
Bool TY_(IsNewNode)(Node *node);
|
30
|
+
|
31
|
+
void TY_(CoerceNode)(TidyDocImpl* doc, Node *node, TidyTagId tid, Bool obsolete, Bool expected);
|
32
|
+
|
33
|
+
/* extract a node and its children from a markup tree */
|
34
|
+
Node *TY_(RemoveNode)(Node *node);
|
35
|
+
|
36
|
+
/* remove node from markup tree and discard it */
|
37
|
+
Node *TY_(DiscardElement)( TidyDocImpl* doc, Node *element);
|
38
|
+
|
39
|
+
/* insert node into markup tree as the firt element
|
40
|
+
of content of element */
|
41
|
+
void TY_(InsertNodeAtStart)(Node *element, Node *node);
|
42
|
+
|
43
|
+
/* insert node into markup tree as the last element
|
44
|
+
of content of "element" */
|
45
|
+
void TY_(InsertNodeAtEnd)(Node *element, Node *node);
|
46
|
+
|
47
|
+
/* insert node into markup tree before element */
|
48
|
+
void TY_(InsertNodeBeforeElement)(Node *element, Node *node);
|
49
|
+
|
50
|
+
/* insert node into markup tree after element */
|
51
|
+
void TY_(InsertNodeAfterElement)(Node *element, Node *node);
|
52
|
+
|
53
|
+
Node *TY_(TrimEmptyElement)( TidyDocImpl* doc, Node *element );
|
54
|
+
Node* TY_(DropEmptyElements)(TidyDocImpl* doc, Node* node);
|
55
|
+
|
56
|
+
|
57
|
+
/* assumes node is a text node */
|
58
|
+
Bool TY_(IsBlank)(Lexer *lexer, Node *node);
|
59
|
+
|
60
|
+
Bool TY_(IsJavaScript)(Node *node);
|
61
|
+
|
62
|
+
/*
|
63
|
+
HTML is the top level element
|
64
|
+
*/
|
65
|
+
void TY_(ParseDocument)( TidyDocImpl* doc );
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
/*
|
70
|
+
XML documents
|
71
|
+
*/
|
72
|
+
Bool TY_(XMLPreserveWhiteSpace)( TidyDocImpl* doc, Node *element );
|
73
|
+
|
74
|
+
void TY_(ParseXMLDocument)( TidyDocImpl* doc );
|
75
|
+
|
76
|
+
#endif /* __PARSER_H__ */
|
data/ext/tidy/platform.h
ADDED
@@ -0,0 +1,636 @@
|
|
1
|
+
#ifndef __TIDY_PLATFORM_H__
|
2
|
+
#define __TIDY_PLATFORM_H__
|
3
|
+
|
4
|
+
/* platform.h -- Platform specifics
|
5
|
+
|
6
|
+
(c) 1998-2008 (W3C) MIT, ERCIM, Keio University
|
7
|
+
See tidy.h for the copyright notice.
|
8
|
+
|
9
|
+
CVS Info :
|
10
|
+
|
11
|
+
$Author: arnaud02 $
|
12
|
+
$Date: 2008/03/17 12:57:01 $
|
13
|
+
$Revision: 1.66 $
|
14
|
+
|
15
|
+
*/
|
16
|
+
|
17
|
+
#ifdef __cplusplus
|
18
|
+
extern "C" {
|
19
|
+
#endif
|
20
|
+
|
21
|
+
/*
|
22
|
+
Uncomment and edit one of the following #defines if you
|
23
|
+
want to specify the config file at compile-time.
|
24
|
+
*/
|
25
|
+
|
26
|
+
/* #define TIDY_CONFIG_FILE "/etc/tidy_config.txt" */ /* original */
|
27
|
+
/* #define TIDY_CONFIG_FILE "/etc/tidyrc" */
|
28
|
+
/* #define TIDY_CONFIG_FILE "/etc/tidy.conf" */
|
29
|
+
|
30
|
+
/*
|
31
|
+
Uncomment the following #define if you are on a system
|
32
|
+
supporting the HOME environment variable.
|
33
|
+
It enables tidy to find config files named ~/.tidyrc if
|
34
|
+
the HTML_TIDY environment variable is not set.
|
35
|
+
*/
|
36
|
+
/* #define TIDY_USER_CONFIG_FILE "~/.tidyrc" */
|
37
|
+
|
38
|
+
/*
|
39
|
+
Uncomment the following #define if your
|
40
|
+
system supports the call getpwnam().
|
41
|
+
E.g. Unix and Linux.
|
42
|
+
|
43
|
+
It enables tidy to find files named
|
44
|
+
~your/foo for use in the HTML_TIDY environment
|
45
|
+
variable or CONFIG_FILE or USER_CONFIGFILE or
|
46
|
+
on the command line: -config ~joebob/tidy.cfg
|
47
|
+
|
48
|
+
Contributed by Todd Lewis.
|
49
|
+
*/
|
50
|
+
|
51
|
+
/* #define SUPPORT_GETPWNAM */
|
52
|
+
|
53
|
+
|
54
|
+
/* Enable/disable support for Big5 and Shift_JIS character encodings */
|
55
|
+
#ifndef SUPPORT_ASIAN_ENCODINGS
|
56
|
+
#define SUPPORT_ASIAN_ENCODINGS 1
|
57
|
+
#endif
|
58
|
+
|
59
|
+
/* Enable/disable support for UTF-16 character encodings */
|
60
|
+
#ifndef SUPPORT_UTF16_ENCODINGS
|
61
|
+
#define SUPPORT_UTF16_ENCODINGS 1
|
62
|
+
#endif
|
63
|
+
|
64
|
+
/* Enable/disable support for additional accessibility checks */
|
65
|
+
#ifndef SUPPORT_ACCESSIBILITY_CHECKS
|
66
|
+
#define SUPPORT_ACCESSIBILITY_CHECKS 1
|
67
|
+
#endif
|
68
|
+
|
69
|
+
|
70
|
+
/* Convenience defines for Mac platforms */
|
71
|
+
|
72
|
+
#if defined(macintosh)
|
73
|
+
/* Mac OS 6.x/7.x/8.x/9.x, with or without CarbonLib - MPW or Metrowerks 68K/PPC compilers */
|
74
|
+
#define MAC_OS_CLASSIC
|
75
|
+
#ifndef PLATFORM_NAME
|
76
|
+
#define PLATFORM_NAME "Mac OS"
|
77
|
+
#endif
|
78
|
+
|
79
|
+
/* needed for access() */
|
80
|
+
#if !defined(_POSIX) && !defined(NO_ACCESS_SUPPORT)
|
81
|
+
#define NO_ACCESS_SUPPORT
|
82
|
+
#endif
|
83
|
+
|
84
|
+
#ifdef SUPPORT_GETPWNAM
|
85
|
+
#undef SUPPORT_GETPWNAM
|
86
|
+
#endif
|
87
|
+
|
88
|
+
#elif defined(__APPLE__) && defined(__MACH__)
|
89
|
+
/* Mac OS X (client) 10.x (or server 1.x/10.x) - gcc or Metrowerks MachO compilers */
|
90
|
+
#define MAC_OS_X
|
91
|
+
#ifndef PLATFORM_NAME
|
92
|
+
#define PLATFORM_NAME "Mac OS X"
|
93
|
+
#endif
|
94
|
+
#endif
|
95
|
+
|
96
|
+
#if defined(MAC_OS_CLASSIC) || defined(MAC_OS_X)
|
97
|
+
/* Any OS on Mac platform */
|
98
|
+
#define MAC_OS
|
99
|
+
#define FILENAMES_CASE_SENSITIVE 0
|
100
|
+
#define strcasecmp strcmp
|
101
|
+
#ifndef DFLT_REPL_CHARENC
|
102
|
+
#define DFLT_REPL_CHARENC MACROMAN
|
103
|
+
#endif
|
104
|
+
#endif
|
105
|
+
|
106
|
+
/* Convenience defines for BSD like platforms */
|
107
|
+
|
108
|
+
#if defined(__FreeBSD__)
|
109
|
+
#define BSD_BASED_OS
|
110
|
+
#ifndef PLATFORM_NAME
|
111
|
+
#define PLATFORM_NAME "FreeBSD"
|
112
|
+
#endif
|
113
|
+
|
114
|
+
#elif defined(__NetBSD__)
|
115
|
+
#define BSD_BASED_OS
|
116
|
+
#ifndef PLATFORM_NAME
|
117
|
+
#define PLATFORM_NAME "NetBSD"
|
118
|
+
#endif
|
119
|
+
|
120
|
+
#elif defined(__OpenBSD__)
|
121
|
+
#define BSD_BASED_OS
|
122
|
+
#ifndef PLATFORM_NAME
|
123
|
+
#define PLATFORM_NAME "OpenBSD"
|
124
|
+
#endif
|
125
|
+
|
126
|
+
#elif defined(__DragonFly__)
|
127
|
+
#define BSD_BASED_OS
|
128
|
+
#ifndef PLATFORM_NAME
|
129
|
+
#define PLATFORM_NAME "DragonFly"
|
130
|
+
#endif
|
131
|
+
|
132
|
+
#elif defined(__MINT__)
|
133
|
+
#define BSD_BASED_OS
|
134
|
+
#ifndef PLATFORM_NAME
|
135
|
+
#define PLATFORM_NAME "FreeMiNT"
|
136
|
+
#endif
|
137
|
+
|
138
|
+
#elif defined(__bsdi__)
|
139
|
+
#define BSD_BASED_OS
|
140
|
+
#ifndef PLATFORM_NAME
|
141
|
+
#define PLATFORM_NAME "BSD/OS"
|
142
|
+
#endif
|
143
|
+
|
144
|
+
#endif
|
145
|
+
|
146
|
+
/* Convenience defines for Windows platforms */
|
147
|
+
|
148
|
+
#if defined(WINDOWS) || defined(_WIN32)
|
149
|
+
|
150
|
+
#define WINDOWS_OS
|
151
|
+
#ifndef PLATFORM_NAME
|
152
|
+
#define PLATFORM_NAME "Windows"
|
153
|
+
#endif
|
154
|
+
|
155
|
+
#if defined(__MWERKS__) || defined(__MSL__)
|
156
|
+
/* not available with Metrowerks Standard Library */
|
157
|
+
|
158
|
+
#ifdef SUPPORT_GETPWNAM
|
159
|
+
#undef SUPPORT_GETPWNAM
|
160
|
+
#endif
|
161
|
+
|
162
|
+
/* needed for setmode() */
|
163
|
+
#if !defined(NO_SETMODE_SUPPORT)
|
164
|
+
#define NO_SETMODE_SUPPORT
|
165
|
+
#endif
|
166
|
+
|
167
|
+
#define strcasecmp _stricmp
|
168
|
+
|
169
|
+
#endif
|
170
|
+
|
171
|
+
#if defined(__BORLANDC__)
|
172
|
+
#define strcasecmp stricmp
|
173
|
+
#endif
|
174
|
+
|
175
|
+
#define FILENAMES_CASE_SENSITIVE 0
|
176
|
+
#define SUPPORT_POSIX_MAPPED_FILES 0
|
177
|
+
|
178
|
+
#endif
|
179
|
+
|
180
|
+
/* Convenience defines for Linux platforms */
|
181
|
+
|
182
|
+
#if defined(linux) && defined(__alpha__)
|
183
|
+
/* Linux on Alpha - gcc compiler */
|
184
|
+
#define LINUX_OS
|
185
|
+
#ifndef PLATFORM_NAME
|
186
|
+
#define PLATFORM_NAME "Linux/Alpha"
|
187
|
+
#endif
|
188
|
+
|
189
|
+
#elif defined(linux) && defined(__sparc__)
|
190
|
+
/* Linux on Sparc - gcc compiler */
|
191
|
+
#define LINUX_OS
|
192
|
+
#ifndef PLATFORM_NAME
|
193
|
+
#define PLATFORM_NAME "Linux/Sparc"
|
194
|
+
#endif
|
195
|
+
|
196
|
+
#elif defined(linux) && (defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__))
|
197
|
+
/* Linux on x86 - gcc compiler */
|
198
|
+
#define LINUX_OS
|
199
|
+
#ifndef PLATFORM_NAME
|
200
|
+
#define PLATFORM_NAME "Linux/x86"
|
201
|
+
#endif
|
202
|
+
|
203
|
+
#elif defined(linux) && defined(__powerpc__)
|
204
|
+
/* Linux on PPC - gcc compiler */
|
205
|
+
#define LINUX_OS
|
206
|
+
|
207
|
+
#if defined(__linux__) && defined(__powerpc__)
|
208
|
+
|
209
|
+
/* #if #system(linux) */
|
210
|
+
/* MkLinux on PPC - gcc (egcs) compiler */
|
211
|
+
/* #define MAC_OS_MKLINUX */
|
212
|
+
#ifndef PLATFORM_NAME
|
213
|
+
#define PLATFORM_NAME "MkLinux"
|
214
|
+
#endif
|
215
|
+
|
216
|
+
#else
|
217
|
+
|
218
|
+
#ifndef PLATFORM_NAME
|
219
|
+
#define PLATFORM_NAME "Linux/PPC"
|
220
|
+
#endif
|
221
|
+
|
222
|
+
#endif
|
223
|
+
|
224
|
+
#elif defined(linux) || defined(__linux__)
|
225
|
+
/* generic Linux */
|
226
|
+
#define LINUX_OS
|
227
|
+
#ifndef PLATFORM_NAME
|
228
|
+
#define PLATFORM_NAME "Linux"
|
229
|
+
#endif
|
230
|
+
|
231
|
+
#endif
|
232
|
+
|
233
|
+
/* Convenience defines for Solaris platforms */
|
234
|
+
|
235
|
+
#if defined(sun)
|
236
|
+
#define SOLARIS_OS
|
237
|
+
#ifndef PLATFORM_NAME
|
238
|
+
#define PLATFORM_NAME "Solaris"
|
239
|
+
#endif
|
240
|
+
#endif
|
241
|
+
|
242
|
+
/* Convenience defines for HPUX + gcc platforms */
|
243
|
+
|
244
|
+
#if defined(__hpux)
|
245
|
+
#define HPUX_OS
|
246
|
+
#ifndef PLATFORM_NAME
|
247
|
+
#define PLATFORM_NAME "HPUX"
|
248
|
+
#endif
|
249
|
+
#endif
|
250
|
+
|
251
|
+
/* Convenience defines for RISCOS + gcc platforms */
|
252
|
+
|
253
|
+
#if defined(__riscos__)
|
254
|
+
#define RISC_OS
|
255
|
+
#ifndef PLATFORM_NAME
|
256
|
+
#define PLATFORM_NAME "RISC OS"
|
257
|
+
#endif
|
258
|
+
#endif
|
259
|
+
|
260
|
+
/* Convenience defines for OS/2 + icc/gcc platforms */
|
261
|
+
|
262
|
+
#if defined(__OS2__) || defined(__EMX__)
|
263
|
+
#define OS2_OS
|
264
|
+
#ifndef PLATFORM_NAME
|
265
|
+
#define PLATFORM_NAME "OS/2"
|
266
|
+
#endif
|
267
|
+
#define FILENAMES_CASE_SENSITIVE 0
|
268
|
+
#define strcasecmp stricmp
|
269
|
+
#endif
|
270
|
+
|
271
|
+
/* Convenience defines for IRIX */
|
272
|
+
|
273
|
+
#if defined(__sgi)
|
274
|
+
#define IRIX_OS
|
275
|
+
#ifndef PLATFORM_NAME
|
276
|
+
#define PLATFORM_NAME "SGI IRIX"
|
277
|
+
#endif
|
278
|
+
#endif
|
279
|
+
|
280
|
+
/* Convenience defines for AIX */
|
281
|
+
|
282
|
+
#if defined(_AIX)
|
283
|
+
#define AIX_OS
|
284
|
+
#ifndef PLATFORM_NAME
|
285
|
+
#define PLATFORM_NAME "IBM AIX"
|
286
|
+
#endif
|
287
|
+
#endif
|
288
|
+
|
289
|
+
|
290
|
+
/* Convenience defines for BeOS platforms */
|
291
|
+
|
292
|
+
#if defined(__BEOS__)
|
293
|
+
#define BE_OS
|
294
|
+
#ifndef PLATFORM_NAME
|
295
|
+
#define PLATFORM_NAME "BeOS"
|
296
|
+
#endif
|
297
|
+
#endif
|
298
|
+
|
299
|
+
/* Convenience defines for Cygwin platforms */
|
300
|
+
|
301
|
+
#if defined(__CYGWIN__)
|
302
|
+
#define CYGWIN_OS
|
303
|
+
#ifndef PLATFORM_NAME
|
304
|
+
#define PLATFORM_NAME "Cygwin"
|
305
|
+
#endif
|
306
|
+
#define FILENAMES_CASE_SENSITIVE 0
|
307
|
+
#endif
|
308
|
+
|
309
|
+
/* Convenience defines for OpenVMS */
|
310
|
+
|
311
|
+
#if defined(__VMS)
|
312
|
+
#define OPENVMS_OS
|
313
|
+
#ifndef PLATFORM_NAME
|
314
|
+
#define PLATFORM_NAME "OpenVMS"
|
315
|
+
#endif
|
316
|
+
#define FILENAMES_CASE_SENSITIVE 0
|
317
|
+
#endif
|
318
|
+
|
319
|
+
/* Convenience defines for DEC Alpha OSF + gcc platforms */
|
320
|
+
|
321
|
+
#if defined(__osf__)
|
322
|
+
#define OSF_OS
|
323
|
+
#ifndef PLATFORM_NAME
|
324
|
+
#define PLATFORM_NAME "DEC Alpha OSF"
|
325
|
+
#endif
|
326
|
+
#endif
|
327
|
+
|
328
|
+
/* Convenience defines for ARM platforms */
|
329
|
+
|
330
|
+
#if defined(__arm)
|
331
|
+
#define ARM_OS
|
332
|
+
|
333
|
+
#if defined(forARM) && defined(__NEWTON_H)
|
334
|
+
|
335
|
+
/* Using Newton C++ Tools ARMCpp compiler */
|
336
|
+
#define NEWTON_OS
|
337
|
+
#ifndef PLATFORM_NAME
|
338
|
+
#define PLATFORM_NAME "Newton"
|
339
|
+
#endif
|
340
|
+
|
341
|
+
#else
|
342
|
+
|
343
|
+
#ifndef PLATFORM_NAME
|
344
|
+
#define PLATFORM_NAME "ARM"
|
345
|
+
#endif
|
346
|
+
|
347
|
+
#endif
|
348
|
+
|
349
|
+
#endif
|
350
|
+
|
351
|
+
#include <ctype.h>
|
352
|
+
#include <stdio.h>
|
353
|
+
#include <setjmp.h> /* for longjmp on error exit */
|
354
|
+
#include <stdlib.h>
|
355
|
+
#include <stdarg.h> /* may need <varargs.h> for Unix V */
|
356
|
+
#include <string.h>
|
357
|
+
#include <assert.h>
|
358
|
+
|
359
|
+
#ifdef NEEDS_MALLOC_H
|
360
|
+
#include <malloc.h>
|
361
|
+
#endif
|
362
|
+
|
363
|
+
#ifdef SUPPORT_GETPWNAM
|
364
|
+
#include <pwd.h>
|
365
|
+
#endif
|
366
|
+
|
367
|
+
#ifdef NEEDS_UNISTD_H
|
368
|
+
#include <unistd.h> /* needed for unlink on some Unix systems */
|
369
|
+
#endif
|
370
|
+
|
371
|
+
/* This can be set at compile time. Usually Windows,
|
372
|
+
** except for Macintosh builds.
|
373
|
+
*/
|
374
|
+
#ifndef DFLT_REPL_CHARENC
|
375
|
+
#define DFLT_REPL_CHARENC WIN1252
|
376
|
+
#endif
|
377
|
+
|
378
|
+
/* By default, use case-sensitive filename comparison.
|
379
|
+
*/
|
380
|
+
#ifndef FILENAMES_CASE_SENSITIVE
|
381
|
+
#define FILENAMES_CASE_SENSITIVE 1
|
382
|
+
#endif
|
383
|
+
|
384
|
+
|
385
|
+
/*
|
386
|
+
Tidy preserves the last modified time for the files it
|
387
|
+
cleans up.
|
388
|
+
*/
|
389
|
+
|
390
|
+
/*
|
391
|
+
If your platform doesn't support <utime.h> and the
|
392
|
+
utime() function, or <sys/futime> and the futime()
|
393
|
+
function then set PRESERVE_FILE_TIMES to 0.
|
394
|
+
|
395
|
+
If your platform doesn't support <sys/utime.h> and the
|
396
|
+
futime() function, then set HAS_FUTIME to 0.
|
397
|
+
|
398
|
+
If your platform supports <utime.h> and the
|
399
|
+
utime() function requires the file to be
|
400
|
+
closed first, then set UTIME_NEEDS_CLOSED_FILE to 1.
|
401
|
+
*/
|
402
|
+
|
403
|
+
/* Keep old PRESERVEFILETIMES define for compatibility */
|
404
|
+
#ifdef PRESERVEFILETIMES
|
405
|
+
#undef PRESERVE_FILE_TIMES
|
406
|
+
#define PRESERVE_FILE_TIMES PRESERVEFILETIMES
|
407
|
+
#endif
|
408
|
+
|
409
|
+
#ifndef PRESERVE_FILE_TIMES
|
410
|
+
#if defined(RISC_OS) || defined(OPENVMS_OS) || defined(OSF_OS)
|
411
|
+
#define PRESERVE_FILE_TIMES 0
|
412
|
+
#else
|
413
|
+
#define PRESERVE_FILE_TIMES 1
|
414
|
+
#endif
|
415
|
+
#endif
|
416
|
+
|
417
|
+
#if PRESERVE_FILE_TIMES
|
418
|
+
|
419
|
+
#ifndef HAS_FUTIME
|
420
|
+
#if defined(CYGWIN_OS) || defined(BE_OS) || defined(OS2_OS) || defined(HPUX_OS) || defined(SOLARIS_OS) || defined(LINUX_OS) || defined(BSD_BASED_OS) || defined(MAC_OS) || defined(__MSL__) || defined(IRIX_OS) || defined(AIX_OS) || defined(__BORLANDC__)
|
421
|
+
#define HAS_FUTIME 0
|
422
|
+
#else
|
423
|
+
#define HAS_FUTIME 1
|
424
|
+
#endif
|
425
|
+
#endif
|
426
|
+
|
427
|
+
#ifndef UTIME_NEEDS_CLOSED_FILE
|
428
|
+
#if defined(SOLARIS_OS) || defined(BSD_BASED_OS) || defined(MAC_OS) || defined(__MSL__) || defined(LINUX_OS)
|
429
|
+
#define UTIME_NEEDS_CLOSED_FILE 1
|
430
|
+
#else
|
431
|
+
#define UTIME_NEEDS_CLOSED_FILE 0
|
432
|
+
#endif
|
433
|
+
#endif
|
434
|
+
|
435
|
+
#if defined(MAC_OS_X) || (!defined(MAC_OS_CLASSIC) && !defined(__MSL__))
|
436
|
+
#include <sys/types.h>
|
437
|
+
#include <sys/stat.h>
|
438
|
+
#else
|
439
|
+
#include <stat.h>
|
440
|
+
#endif
|
441
|
+
|
442
|
+
#if HAS_FUTIME
|
443
|
+
#include <sys/utime.h>
|
444
|
+
#else
|
445
|
+
#include <utime.h>
|
446
|
+
#endif /* HASFUTIME */
|
447
|
+
|
448
|
+
/*
|
449
|
+
MS Windows needs _ prefix for Unix file functions.
|
450
|
+
Not required by Metrowerks Standard Library (MSL).
|
451
|
+
|
452
|
+
Tidy uses following for preserving the last modified time.
|
453
|
+
|
454
|
+
WINDOWS automatically set by Win16 compilers.
|
455
|
+
_WIN32 automatically set by Win32 compilers.
|
456
|
+
*/
|
457
|
+
#if defined(_WIN32) && !defined(__MSL__) && !defined(__BORLANDC__)
|
458
|
+
|
459
|
+
#define futime _futime
|
460
|
+
#define fstat _fstat
|
461
|
+
#define utimbuf _utimbuf /* Windows seems to want utimbuf */
|
462
|
+
#define stat _stat
|
463
|
+
#define utime _utime
|
464
|
+
#define vsnprintf _vsnprintf
|
465
|
+
#endif /* _WIN32 */
|
466
|
+
|
467
|
+
#endif /* PRESERVE_FILE_TIMES */
|
468
|
+
|
469
|
+
/*
|
470
|
+
MS Windows needs _ prefix for Unix file functions.
|
471
|
+
Not required by Metrowerks Standard Library (MSL).
|
472
|
+
|
473
|
+
WINDOWS automatically set by Win16 compilers.
|
474
|
+
_WIN32 automatically set by Win32 compilers.
|
475
|
+
*/
|
476
|
+
#if defined(_WIN32) && !defined(__MSL__) && !defined(__BORLANDC__)
|
477
|
+
|
478
|
+
#ifndef __WATCOMC__
|
479
|
+
#define fileno _fileno
|
480
|
+
#define setmode _setmode
|
481
|
+
#endif
|
482
|
+
|
483
|
+
#define access _access
|
484
|
+
#define strcasecmp _stricmp
|
485
|
+
|
486
|
+
#if _MSC_VER > 1000
|
487
|
+
#pragma warning( disable : 4189 ) /* local variable is initialized but not referenced */
|
488
|
+
#pragma warning( disable : 4100 ) /* unreferenced formal parameter */
|
489
|
+
#pragma warning( disable : 4706 ) /* assignment within conditional expression */
|
490
|
+
#endif
|
491
|
+
|
492
|
+
#if _MSC_VER > 1300
|
493
|
+
#pragma warning( disable : 4996 ) /* disable depreciation warning */
|
494
|
+
#endif
|
495
|
+
|
496
|
+
#endif /* _WIN32 */
|
497
|
+
|
498
|
+
#if defined(_WIN32)
|
499
|
+
|
500
|
+
#if (defined(_USRDLL) || defined(_WINDLL)) && !defined(TIDY_EXPORT)
|
501
|
+
#define TIDY_EXPORT __declspec( dllexport )
|
502
|
+
#endif
|
503
|
+
|
504
|
+
#ifndef TIDY_CALL
|
505
|
+
#ifdef _WIN64
|
506
|
+
# define TIDY_CALL __fastcall
|
507
|
+
#else
|
508
|
+
# define TIDY_CALL __stdcall
|
509
|
+
#endif
|
510
|
+
#endif
|
511
|
+
|
512
|
+
#endif /* _WIN32 */
|
513
|
+
|
514
|
+
/* hack for gnu sys/types.h file which defines uint and ulong */
|
515
|
+
|
516
|
+
#if defined(BE_OS) || defined(SOLARIS_OS) || defined(BSD_BASED_OS) || defined(OSF_OS) || defined(IRIX_OS) || defined(AIX_OS)
|
517
|
+
#include <sys/types.h>
|
518
|
+
#endif
|
519
|
+
#if !defined(HPUX_OS) && !defined(CYGWIN_OS) && !defined(MAC_OS_X) && !defined(BE_OS) && !defined(SOLARIS_OS) && !defined(BSD_BASED_OS) && !defined(OSF_OS) && !defined(IRIX_OS) && !defined(AIX_OS) && !defined(LINUX_OS)
|
520
|
+
# undef uint
|
521
|
+
typedef unsigned int uint;
|
522
|
+
#endif
|
523
|
+
#if defined(HPUX_OS) || defined(CYGWIN_OS) || defined(MAC_OS) || defined(BSD_BASED_OS) || defined(_WIN32)
|
524
|
+
# undef ulong
|
525
|
+
typedef unsigned long ulong;
|
526
|
+
#endif
|
527
|
+
|
528
|
+
/*
|
529
|
+
With GCC 4, __attribute__ ((visibility("default"))) can be used along compiling with tidylib
|
530
|
+
with "-fvisibility=hidden". See http://gcc.gnu.org/wiki/Visibility and build/gmake/Makefile.
|
531
|
+
*/
|
532
|
+
/*
|
533
|
+
#if defined(__GNUC__) && __GNUC__ >= 4
|
534
|
+
#define TIDY_EXPORT __attribute__ ((visibility("default")))
|
535
|
+
#endif
|
536
|
+
*/
|
537
|
+
|
538
|
+
#ifndef TIDY_EXPORT /* Define it away for most builds */
|
539
|
+
#define TIDY_EXPORT
|
540
|
+
#endif
|
541
|
+
|
542
|
+
#ifndef TIDY_STRUCT
|
543
|
+
#define TIDY_STRUCT
|
544
|
+
#endif
|
545
|
+
|
546
|
+
typedef unsigned char byte;
|
547
|
+
|
548
|
+
typedef uint tchar; /* single, full character */
|
549
|
+
typedef char tmbchar; /* single, possibly partial character */
|
550
|
+
#ifndef TMBSTR_DEFINED
|
551
|
+
typedef tmbchar* tmbstr; /* pointer to buffer of possibly partial chars */
|
552
|
+
typedef const tmbchar* ctmbstr; /* Ditto, but const */
|
553
|
+
#define NULLSTR (tmbstr)""
|
554
|
+
#define TMBSTR_DEFINED
|
555
|
+
#endif
|
556
|
+
|
557
|
+
#ifndef TIDY_CALL
|
558
|
+
#define TIDY_CALL
|
559
|
+
#endif
|
560
|
+
|
561
|
+
#if defined(__GNUC__) || defined(__INTEL_COMPILER)
|
562
|
+
# define ARG_UNUSED(x) x __attribute__((unused))
|
563
|
+
#else
|
564
|
+
# define ARG_UNUSED(x) x
|
565
|
+
#endif
|
566
|
+
|
567
|
+
/* HAS_VSNPRINTF triggers the use of "vsnprintf", which is safe related to
|
568
|
+
buffer overflow. Therefore, we make it the default unless HAS_VSNPRINTF
|
569
|
+
has been defined. */
|
570
|
+
#ifndef HAS_VSNPRINTF
|
571
|
+
# define HAS_VSNPRINTF 1
|
572
|
+
#endif
|
573
|
+
|
574
|
+
#ifndef SUPPORT_POSIX_MAPPED_FILES
|
575
|
+
# define SUPPORT_POSIX_MAPPED_FILES 1
|
576
|
+
#endif
|
577
|
+
|
578
|
+
/*
|
579
|
+
bool is a reserved word in some but
|
580
|
+
not all C++ compilers depending on age
|
581
|
+
work around is to avoid bool altogether
|
582
|
+
by introducing a new enum called Bool
|
583
|
+
*/
|
584
|
+
/* We could use the C99 definition where supported
|
585
|
+
typedef _Bool Bool;
|
586
|
+
#define no (_Bool)0
|
587
|
+
#define yes (_Bool)1
|
588
|
+
*/
|
589
|
+
typedef enum
|
590
|
+
{
|
591
|
+
no,
|
592
|
+
yes
|
593
|
+
} Bool;
|
594
|
+
|
595
|
+
/* for NULL pointers
|
596
|
+
#define null ((const void*)0)
|
597
|
+
extern void* null;
|
598
|
+
*/
|
599
|
+
|
600
|
+
#if defined(DMALLOC)
|
601
|
+
#include "dmalloc.h"
|
602
|
+
#endif
|
603
|
+
|
604
|
+
/* Opaque data structure.
|
605
|
+
* Cast to implementation type struct within lib.
|
606
|
+
* This will reduce inter-dependencies/conflicts w/ application code.
|
607
|
+
*/
|
608
|
+
#if 1
|
609
|
+
#define opaque_type( typenam )\
|
610
|
+
struct _##typenam { int _opaque; };\
|
611
|
+
typedef struct _##typenam const * typenam
|
612
|
+
#else
|
613
|
+
#define opaque_type(typenam) typedef const void* typenam
|
614
|
+
#endif
|
615
|
+
|
616
|
+
/* Opaque data structure used to pass back
|
617
|
+
** and forth to keep current position in a
|
618
|
+
** list or other collection.
|
619
|
+
*/
|
620
|
+
opaque_type( TidyIterator );
|
621
|
+
|
622
|
+
#ifdef __cplusplus
|
623
|
+
} /* extern "C" */
|
624
|
+
#endif
|
625
|
+
|
626
|
+
#endif /* __TIDY_PLATFORM_H__ */
|
627
|
+
|
628
|
+
|
629
|
+
/*
|
630
|
+
* local variables:
|
631
|
+
* mode: c
|
632
|
+
* indent-tabs-mode: nil
|
633
|
+
* c-basic-offset: 4
|
634
|
+
* eval: (c-set-offset 'substatement-open 0)
|
635
|
+
* end:
|
636
|
+
*/
|