HTML Tidy 5.8.0
The HTACG Tidy HTML Project
Loading...
Searching...
No Matches
tidy-int.h
Go to the documentation of this file.
1#ifndef __TIDY_INT_H__
2#define __TIDY_INT_H__
3
4/* tidy-int.h -- internal library declarations
5
6 (c) 1998-2007 (W3C) MIT, ERCIM, Keio University
7 See tidy.h for the copyright notice.
8
9*/
10
11#include "tidy.h"
12#include "config.h"
13#include "lexer.h"
14#include "tags.h"
15#include "attrs.h"
16#include "pprint.h"
17#include "access.h"
18#include "message.h"
19
20#ifndef MAX
21#define MAX(a,b) (((a) > (b))?(a):(b))
22#endif
23#ifndef MIN
24#define MIN(a,b) (((a) < (b))?(a):(b))
25#endif
26
27/*\
28 * Issue #166 - repeated <main> element
29 * Change the previous on/off uint flag badForm
30 * to a BIT flag to support other than <form>
31 * errors. This could be extended more...
32\*/
33#define flg_BadForm 0x00000001
34#define flg_BadMain 0x00000002
35
37{
38 /* The Document Tree (and backing store buffer) */
39 Node root; /* This MUST remain the first declared
40 variable in this structure */
41 Lexer* lexer;
42
43 /* Config + Markup Declarations */
46 TidyAttribImpl attribs;
47 TidyAccessImpl access;
49
50 /* The Pretty Print buffer */
52
53 /* I/O */
54 StreamIn* docIn;
55 StreamOut* docOut;
56 StreamOut* errout;
64
65 /* Parse + Repair Results */
73
74 uint badAccess; /* for accessibility errors */
75 uint badLayout; /* for bad style errors */
76 uint badChars; /* for bad char encodings */
77 uint badForm; /* bit field, for badly placed form tags, or other format errors */
78 uint footnotes; /* bit field, for other footnotes, until formalized */
79
80 Bool HTML5Mode; /* current mode is html5 */
81 Bool xmlDetected; /* true if XML was used/detected */
82
83 /* Memory allocator */
84 TidyAllocator* allocator;
85
86 /* Miscellaneous */
87 void* appData;
90
91#if PRESERVE_FILE_TIMES
92 struct utimbuf filetimes;
93#endif
95};
96
97/** The basic struct for communicating a message within LibTidy. All of the
98** relevant information pertaining to a message can be retrieved with the
99** accessor functions and one of these records.
100*/
102{
103 TidyDocImpl *tidyDoc; /* document instance this message is attributed to */
104 Node *tidyNode; /* the node reporting the message, if applicable */
105 uint code; /* the message code */
106 int line; /* the line message applies to */
107 int column; /* the column the message applies to */
108 TidyReportLevel level; /* the severity level of the message */
109 Bool allowMessage; /* indicates whether or not a filter rejected a message */
110 Bool muted; /* indicates whether or not a configuration mutes this message */
111
112 int argcount; /* the number of arguments */
113 struct printfArg* arguments; /* the arguments' values and types */
114
115 ctmbstr messageKey; /* the message code as a key string */
116
117 ctmbstr messageFormatDefault; /* the built-in format string */
118 ctmbstr messageFormat; /* the localized format string */
119
120 tmbstr messageDefault; /* the message, formatted, default language */
121 tmbstr message; /* the message, formatted, localized */
122
123 tmbstr messagePosDefault; /* the position part, default language */
124 tmbstr messagePos; /* the position part, localized */
125
126 ctmbstr messagePrefixDefault; /* the prefix part, default language */
127 ctmbstr messagePrefix; /* the prefix part, localized */
128
129 tmbstr messageOutputDefault; /* the complete string Tidy would output */
130 tmbstr messageOutput; /* the complete string, localized */
131};
132
133
134#define tidyDocToImpl( tdoc ) ((TidyDocImpl*)(tdoc))
135#define tidyImplToDoc( doc ) ((TidyDoc)(doc))
136
137#define tidyMessageToImpl( tmessage ) ((TidyMessageImpl*)(tmessage))
138#define tidyImplToMessage( message ) ((TidyMessage)(message))
139
140#define tidyNodeToImpl( tnod ) ((Node*)(tnod))
141#define tidyImplToNode( node ) ((TidyNode)(node))
142
143#define tidyAttrToImpl( tattr ) ((AttVal*)(tattr))
144#define tidyImplToAttr( attval ) ((TidyAttr)(attval))
145
146#define tidyOptionToImpl( topt ) ((const TidyOptionImpl*)(topt))
147#define tidyImplToOption( option ) ((TidyOption)(option))
148
149
150/** Wrappers for easy memory allocation using the document's allocator */
151#define TidyDocAlloc(doc, size) TidyAlloc((doc)->allocator, size)
152#define TidyDocRealloc(doc, block, size) TidyRealloc((doc)->allocator, block, size)
153#define TidyDocFree(doc, block) TidyFree((doc)->allocator, block)
154#define TidyDocPanic(doc, msg) TidyPanic((doc)->allocator, msg)
155
156TY_PRIVATE int TY_(DocParseStream)( TidyDocImpl* impl, StreamIn* in );
157
158/*
159 [i_a] generic node tree traversal code; used in several spots.
160
161 Define your own callback, which returns one of the NodeTraversalSignal values
162 to instruct the tree traversal routine TraverseNodeTree() what to do.
163
164 Pass custom data to/from the callback using the 'propagate' reference.
165 */
166typedef enum
167{
168 ContinueTraversal, /* visit siblings and children */
169 SkipChildren, /* visit siblings of this node; ignore its children */
170 SkipSiblings, /* ignore subsequent siblings of this node; ignore their children; traverse */
171 SkipChildrenAndSiblings, /* visit siblings of this node; ignore its children */
172 VisitParent, /* REVERSE traversal: visit the parent of the current node */
173 ExitTraversal /* terminate traversal on the spot */
175
176typedef NodeTraversalSignal NodeTraversalCallBack(TidyDocImpl* doc, Node* node, void *propagate);
177
178TY_PRIVATE NodeTraversalSignal TY_(TraverseNodeTree)(TidyDocImpl* doc, Node* node, NodeTraversalCallBack *cb, void *propagate);
179
180#endif /* __TIDY_INT_H__ */
Read configuration files and manage configuration properties.
#define TY_PRIVATE
Definition forward.h:29
#define TY_(str)
Definition forward.h:23
Bool(TIDY_CALL * TidyOptCallback)(ctmbstr option, ctmbstr value)
This typedef represents the required signature for your provided callback function should you wish to...
Definition tidy.h:573
void(TIDY_CALL * TidyConfigChangeCallback)(TidyDoc tdoc, TidyOption option)
This typedef represents the required signature for your provided callback function should you wish to...
Definition tidy.h:616
Bool(TIDY_CALL * TidyConfigCallback)(TidyDoc tdoc, ctmbstr option, ctmbstr value)
This typedef represents the required signature for your provided callback function should you wish to...
Definition tidy.h:597
void(TIDY_CALL * TidyPPProgress)(TidyDoc tdoc, uint line, uint col, uint destLine)
This typedef represents the required signature for your provided callback function should you wish to...
Definition tidy.h:1532
Bool(TIDY_CALL * TidyMessageCallback)(TidyMessage tmessage)
This typedef represents the required signature for your provided callback function should you wish to...
Definition tidy.h:1286
Bool(TIDY_CALL * TidyReportCallback)(TidyDoc tdoc, TidyReportLevel lvl, uint line, uint col, ctmbstr code, va_list args)
This typedef represents the required signature for your provided callback function should you wish to...
Definition tidy.h:1260
Bool(TIDY_CALL * TidyReportFilter)(TidyDoc tdoc, TidyReportLevel lvl, uint line, uint col, ctmbstr mssg)
This typedef represents the required signature for your provided callback function should you wish to...
Definition tidy.h:1221
This type is used to define a structure for keeping track of the values for each option.
Definition config.h:122
Maintains a list of messages not to display.
Definition message.h:194
TidyReportLevel
Message severity level, used throughout LibTidy to indicate the severity or status of a message.
Definition tidyenum.h:1390
This structure consists of the lists of all tags known to Tidy.
Definition tags.h:110
Definition pprint.h:49
Recognize HTML Tags.
TidyPPProgress progressCallback
Definition tidy-int.h:63
TidyConfigImpl config
Definition tidy-int.h:44
void * appData
Definition tidy-int.h:87
ctmbstr messageKey
Definition tidy-int.h:115
uint badLayout
Definition tidy-int.h:75
uint code
Definition tidy-int.h:105
ctmbstr messagePrefixDefault
Definition tidy-int.h:126
tmbstr messagePos
Definition tidy-int.h:124
uint badChars
Definition tidy-int.h:76
ctmbstr messageFormat
Definition tidy-int.h:118
int line
Definition tidy-int.h:106
tmbstr messagePosDefault
Definition tidy-int.h:123
TidyPrintImpl pprint
Definition tidy-int.h:51
struct printfArg * arguments
Definition tidy-int.h:113
NodeTraversalSignal
Definition tidy-int.h:167
@ ContinueTraversal
Definition tidy-int.h:168
@ SkipChildren
Definition tidy-int.h:169
@ ExitTraversal
Definition tidy-int.h:173
@ SkipSiblings
Definition tidy-int.h:170
@ VisitParent
Definition tidy-int.h:172
@ SkipChildrenAndSiblings
Definition tidy-int.h:171
tmbstr message
Definition tidy-int.h:121
uint badForm
Definition tidy-int.h:77
uint footnotes
Definition tidy-int.h:78
Node root
Definition tidy-int.h:39
int column
Definition tidy-int.h:107
TidyTagImpl tags
Definition tidy-int.h:45
TidyAccessImpl access
Definition tidy-int.h:47
tmbstr messageOutput
Definition tidy-int.h:130
ctmbstr messagePrefix
Definition tidy-int.h:127
uint badAccess
Definition tidy-int.h:74
StreamOut * docOut
Definition tidy-int.h:55
TidyConfigChangeCallback pConfigChangeCallback
Definition tidy-int.h:62
tmbstr messageOutputDefault
Definition tidy-int.h:129
TidyAttribImpl attribs
Definition tidy-int.h:46
StreamIn * docIn
Definition tidy-int.h:54
TidyMutedMessages muted
Definition tidy-int.h:48
StreamOut * errout
Definition tidy-int.h:56
tmbstr givenDoctype
Definition tidy-int.h:94
uint docErrors
Definition tidy-int.h:71
ctmbstr messageFormatDefault
Definition tidy-int.h:117
TidyDocImpl * tidyDoc
Definition tidy-int.h:103
TidyAllocator * allocator
Definition tidy-int.h:84
Bool HTML5Mode
Definition tidy-int.h:80
uint warnings
Definition tidy-int.h:68
Bool muted
Definition tidy-int.h:110
int argcount
Definition tidy-int.h:112
TidyOptCallback pOptCallback
Definition tidy-int.h:60
uint nClassId
Definition tidy-int.h:88
TidyReportLevel level
Definition tidy-int.h:108
uint accessErrors
Definition tidy-int.h:69
tmbstr messageDefault
Definition tidy-int.h:120
NodeTraversalSignal NodeTraversalCallBack(TidyDocImpl *doc, Node *node, void *propagate)
Definition tidy-int.h:176
TidyReportCallback reportCallback
Definition tidy-int.h:58
Bool inputHadBOM
Definition tidy-int.h:89
int parseStatus
Definition tidy-int.h:72
uint infoMessages
Definition tidy-int.h:70
TidyMessageCallback messageCallback
Definition tidy-int.h:59
Bool allowMessage
Definition tidy-int.h:109
uint errors
Definition tidy-int.h:67
uint optionErrors
Definition tidy-int.h:66
Bool xmlDetected
Definition tidy-int.h:81
Node * tidyNode
Definition tidy-int.h:104
Lexer * lexer
Definition tidy-int.h:41
TidyConfigCallback pConfigCallback
Definition tidy-int.h:61
TidyReportFilter reportFilter
Definition tidy-int.h:57
Definition tidy-int.h:37
The basic struct for communicating a message within LibTidy.
Definition tidy-int.h:102
Defines HTML Tidy public API implemented by LibTidy.
Bool
Definition tidyplatform.h:647
unsigned int uint
Definition tidyplatform.h:569
const tmbchar * ctmbstr
Definition tidyplatform.h:609
tmbchar * tmbstr
Definition tidyplatform.h:608