tidy-ext 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. data/.gitignore +4 -0
  2. data/LICENSE +50 -0
  3. data/README +12 -0
  4. data/Rakefile +60 -0
  5. data/VERSION +1 -0
  6. data/ext/tidy/access.c +3310 -0
  7. data/ext/tidy/access.h +279 -0
  8. data/ext/tidy/alloc.c +107 -0
  9. data/ext/tidy/attrask.c +209 -0
  10. data/ext/tidy/attrdict.c +2398 -0
  11. data/ext/tidy/attrdict.h +122 -0
  12. data/ext/tidy/attrget.c +213 -0
  13. data/ext/tidy/attrs.c +1911 -0
  14. data/ext/tidy/attrs.h +374 -0
  15. data/ext/tidy/buffio.c +232 -0
  16. data/ext/tidy/buffio.h +118 -0
  17. data/ext/tidy/charsets.c +1032 -0
  18. data/ext/tidy/charsets.h +14 -0
  19. data/ext/tidy/clean.c +2674 -0
  20. data/ext/tidy/clean.h +87 -0
  21. data/ext/tidy/config.c +1746 -0
  22. data/ext/tidy/config.h +153 -0
  23. data/ext/tidy/entities.c +419 -0
  24. data/ext/tidy/entities.h +24 -0
  25. data/ext/tidy/extconf.rb +5 -0
  26. data/ext/tidy/fileio.c +106 -0
  27. data/ext/tidy/fileio.h +46 -0
  28. data/ext/tidy/forward.h +69 -0
  29. data/ext/tidy/iconvtc.c +105 -0
  30. data/ext/tidy/iconvtc.h +15 -0
  31. data/ext/tidy/istack.c +373 -0
  32. data/ext/tidy/lexer.c +3825 -0
  33. data/ext/tidy/lexer.h +617 -0
  34. data/ext/tidy/localize.c +1882 -0
  35. data/ext/tidy/mappedio.c +329 -0
  36. data/ext/tidy/mappedio.h +16 -0
  37. data/ext/tidy/message.h +207 -0
  38. data/ext/tidy/parser.c +4408 -0
  39. data/ext/tidy/parser.h +76 -0
  40. data/ext/tidy/platform.h +636 -0
  41. data/ext/tidy/pprint.c +2276 -0
  42. data/ext/tidy/pprint.h +93 -0
  43. data/ext/tidy/ruby-tidy.c +195 -0
  44. data/ext/tidy/streamio.c +1407 -0
  45. data/ext/tidy/streamio.h +222 -0
  46. data/ext/tidy/tagask.c +286 -0
  47. data/ext/tidy/tags.c +955 -0
  48. data/ext/tidy/tags.h +235 -0
  49. data/ext/tidy/tidy-int.h +129 -0
  50. data/ext/tidy/tidy.h +1097 -0
  51. data/ext/tidy/tidyenum.h +622 -0
  52. data/ext/tidy/tidylib.c +1751 -0
  53. data/ext/tidy/tmbstr.c +306 -0
  54. data/ext/tidy/tmbstr.h +92 -0
  55. data/ext/tidy/utf8.c +539 -0
  56. data/ext/tidy/utf8.h +52 -0
  57. data/ext/tidy/version.h +14 -0
  58. data/ext/tidy/win32tc.c +795 -0
  59. data/ext/tidy/win32tc.h +19 -0
  60. data/spec/spec_helper.rb +5 -0
  61. data/spec/tidy/compat_spec.rb +44 -0
  62. data/spec/tidy/remote_uri_spec.rb +14 -0
  63. data/spec/tidy/test1.html +5 -0
  64. data/spec/tidy/tidy_spec.rb +34 -0
  65. 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__ */
@@ -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
+ */