tidy-ext 0.1.7
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.
- 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
|
+
*/
|