Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 306 lines (269 sloc) 8.782 kb
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
1 /*
2 * DOCBparser.c : an attempt to parse SGML Docbook documents
3 *
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
4 * This is deprecated !!!
5 * Code removed with release 2.6.0 it was broken.
3648fcb let's see how much of a pain murrayc is really gonna be. Daniel
Daniel Veillard authored
6 * The doc are expect to be migrated to XML DocBook
e95e239 - DOCBparser.c: implemented the <?sgml-declaration encoding="xxx"?>
Daniel Veillard authored
7 *
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
8 * See Copyright for the status of this software.
9 *
c5d6434 Summer's cleanup, a really big one:
Daniel Veillard authored
10 * daniel@veillard.com
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
11 */
12
34ce8be preparing 2.4.18 updated and rebuilt the web site implement the new
Daniel Veillard authored
13 #define IN_LIBXML
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
14 #include "libxml.h"
15 #ifdef LIBXML_DOCB_ENABLED
16
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
17 #include <libxml/xmlerror.h>
18 #include <libxml/DOCBparser.h>
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
19
20 /**
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
21 * docbEncodeEntities:
22 * @out: a pointer to an array of bytes to store the result
23 * @outlen: the length of @out
24 * @in: a pointer to an array of UTF-8 chars
25 * @inlen: the length of @in
26 * @quoteChar: the quote character to escape (' or ") or zero.
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
27 *
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
28 * Take a block of UTF-8 chars in and try to convert it to an ASCII
29 * plus SGML entities block of chars out.
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
30 *
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
31 * Returns 0 if success, -2 if the transcoding fails, or -1 otherwise
32 * The value of @inlen after return is the number of octets consumed
33 * as the return value is positive, else unpredictable.
34 * The value of @outlen after return is the number of octets consumed.
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
35 */
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
36 int
37 docbEncodeEntities(unsigned char *out ATTRIBUTE_UNUSED,
38 int *outlen ATTRIBUTE_UNUSED,
39 const unsigned char *in ATTRIBUTE_UNUSED,
40 int *inlen ATTRIBUTE_UNUSED,
41 int quoteChar ATTRIBUTE_UNUSED)
84666b3 handling of PIs and <?sgml-declaration in entities. Daniel
Daniel Veillard authored
42 {
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
43 static int deprecated = 0;
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
44
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
45 if (!deprecated) {
46 xmlGenericError(xmlGenericErrorContext,
47 "docbEncodeEntities() deprecated function reached\n");
48 deprecated = 1;
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
49 }
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
50 return(-1);
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
51 }
52
53 /**
01c13b5 code cleanup, especially the function comments. fixed a small bug when
Daniel Veillard authored
54 * docbParseDocument:
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
55 * @ctxt: an SGML parser context
56 *
57 * parse an SGML document (and build a tree if using the standard SAX
58 * interface).
59 *
60 * Returns 0, -1 in case of error. the parser context is augmented
61 * as a result of the parsing.
62 */
63
64 int
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
65 docbParseDocument(docbParserCtxtPtr ctxt ATTRIBUTE_UNUSED)
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
66 {
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
67 static int deprecated = 0;
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
68
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
69 if (!deprecated) {
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
70 xmlGenericError(xmlGenericErrorContext,
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
71 "docbParseDocument() deprecated function reached\n");
72 deprecated = 1;
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
73 }
3648fcb let's see how much of a pain murrayc is really gonna be. Daniel
Daniel Veillard authored
74 return (xmlParseDocument(ctxt));
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
75 }
76
77 /**
78 * docbFreeParserCtxt:
79 * @ctxt: an SGML parser context
80 *
81 * Free all the memory used by a parser context. However the parsed
82 * document in ctxt->myDoc is not freed.
83 */
84
85 void
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
86 docbFreeParserCtxt(docbParserCtxtPtr ctxt ATTRIBUTE_UNUSED)
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
87 {
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
88 static int deprecated = 0;
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
89
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
90 if (!deprecated) {
91 xmlGenericError(xmlGenericErrorContext,
92 "docbFreeParserCtxt() deprecated function reached\n");
93 deprecated = 1;
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
94 }
3648fcb let's see how much of a pain murrayc is really gonna be. Daniel
Daniel Veillard authored
95 xmlFreeParserCtxt(ctxt);
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
96 }
97
98 /**
99 * docbParseChunk:
100 * @ctxt: an XML parser context
101 * @chunk: an char array
102 * @size: the size in byte of the chunk
103 * @terminate: last chunk indicator
104 *
105 * Parse a Chunk of memory
106 *
107 * Returns zero if no error, the xmlParserErrors otherwise.
108 */
109 int
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
110 docbParseChunk(docbParserCtxtPtr ctxt ATTRIBUTE_UNUSED,
111 const char *chunk ATTRIBUTE_UNUSED,
112 int size ATTRIBUTE_UNUSED,
113 int terminate ATTRIBUTE_UNUSED)
114 {
115 static int deprecated = 0;
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
116
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
117 if (!deprecated) {
118 xmlGenericError(xmlGenericErrorContext,
119 "docbParseChunk() deprecated function reached\n");
120 deprecated = 1;
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
121 }
122
3648fcb let's see how much of a pain murrayc is really gonna be. Daniel
Daniel Veillard authored
123 return (xmlParseChunk(ctxt, chunk, size, terminate));
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
124 }
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
125
126 /**
01c13b5 code cleanup, especially the function comments. fixed a small bug when
Daniel Veillard authored
127 * docbCreatePushParserCtxt:
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
128 * @sax: a SAX handler
129 * @user_data: The user data returned on SAX callbacks
130 * @chunk: a pointer to an array of chars
131 * @size: number of chars in the array
132 * @filename: an optional file name or URI
133 * @enc: an optional encoding
134 *
135 * Create a parser context for using the DocBook SGML parser in push mode
136 * To allow content encoding detection, @size should be >= 4
137 * The value of @filename is used for fetching external entities
138 * and error/warning reports.
139 *
140 * Returns the new parser context or NULL
141 */
142 docbParserCtxtPtr
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
143 docbCreatePushParserCtxt(docbSAXHandlerPtr sax ATTRIBUTE_UNUSED,
144 void *user_data ATTRIBUTE_UNUSED,
145 const char *chunk ATTRIBUTE_UNUSED,
146 int size ATTRIBUTE_UNUSED,
147 const char *filename ATTRIBUTE_UNUSED,
148 xmlCharEncoding enc ATTRIBUTE_UNUSED)
149 {
150 static int deprecated = 0;
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
151
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
152 if (!deprecated) {
153 xmlGenericError(xmlGenericErrorContext,
154 "docbParseChunk() deprecated function reached\n");
155 deprecated = 1;
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
156 }
157
3648fcb let's see how much of a pain murrayc is really gonna be. Daniel
Daniel Veillard authored
158 return(xmlCreatePushParserCtxt(sax, user_data, chunk, size, filename));
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
159 }
160
161 /**
01c13b5 code cleanup, especially the function comments. fixed a small bug when
Daniel Veillard authored
162 * docbSAXParseDoc:
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
163 * @cur: a pointer to an array of xmlChar
164 * @encoding: a free form C string describing the SGML document encoding, or NULL
165 * @sax: the SAX handler block
166 * @userData: if using SAX, this pointer will be provided on callbacks.
167 *
168 * parse an SGML in-memory document and build a tree.
169 * It use the given SAX function block to handle the parsing callback.
170 * If sax is NULL, fallback to the default DOM tree building routines.
171 *
172 * Returns the resulting document tree
173 */
174
175 docbDocPtr
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
176 docbSAXParseDoc(xmlChar * cur ATTRIBUTE_UNUSED,
177 const char *encoding ATTRIBUTE_UNUSED,
178 docbSAXHandlerPtr sax ATTRIBUTE_UNUSED,
179 void *userData ATTRIBUTE_UNUSED)
180 {
181 static int deprecated = 0;
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
182
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
183 if (!deprecated) {
184 xmlGenericError(xmlGenericErrorContext,
185 "docbParseChunk() deprecated function reached\n");
186 deprecated = 1;
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
187 }
188
3648fcb let's see how much of a pain murrayc is really gonna be. Daniel
Daniel Veillard authored
189 return (xmlSAXParseMemoryWithData(sax, (const char *)cur,
190 xmlStrlen((const xmlChar *) cur), 0, userData));
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
191 }
192
193 /**
01c13b5 code cleanup, especially the function comments. fixed a small bug when
Daniel Veillard authored
194 * docbParseDoc:
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
195 * @cur: a pointer to an array of xmlChar
196 * @encoding: a free form C string describing the SGML document encoding, or NULL
197 *
198 * parse an SGML in-memory document and build a tree.
199 *
200 * Returns the resulting document tree
201 */
202
203 docbDocPtr
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
204 docbParseDoc(xmlChar * cur ATTRIBUTE_UNUSED,
205 const char *encoding ATTRIBUTE_UNUSED)
206 {
207 static int deprecated = 0;
208
209 if (!deprecated) {
210 xmlGenericError(xmlGenericErrorContext,
211 "docbParseChunk() deprecated function reached\n");
212 deprecated = 1;
213 }
214
3648fcb let's see how much of a pain murrayc is really gonna be. Daniel
Daniel Veillard authored
215 return (xmlParseDoc(cur));
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
216 }
217
218
219 /**
01c13b5 code cleanup, especially the function comments. fixed a small bug when
Daniel Veillard authored
220 * docbCreateFileParserCtxt:
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
221 * @filename: the filename
1034da2 - DOCBparser.c SAX.c: a bit more work on entities processing.
Daniel Veillard authored
222 * @encoding: the SGML document encoding, or NULL
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
223 *
224 * Create a parser context for a file content.
225 * Automatic support for ZLIB/Compress compressed document is provided
226 * by default if found at compile-time.
227 *
228 * Returns the new parser context or NULL
229 */
230 docbParserCtxtPtr
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
231 docbCreateFileParserCtxt(const char *filename ATTRIBUTE_UNUSED,
232 const char *encoding ATTRIBUTE_UNUSED)
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
233 {
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
234 static int deprecated = 0;
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
235
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
236 if (!deprecated) {
237 xmlGenericError(xmlGenericErrorContext,
238 "docbCreateFileParserCtxt() deprecated function reached\n");
239 deprecated = 1;
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
240 }
241
3648fcb let's see how much of a pain murrayc is really gonna be. Daniel
Daniel Veillard authored
242 return (xmlCreateFileParserCtxt(filename));
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
243 }
244
245 /**
01c13b5 code cleanup, especially the function comments. fixed a small bug when
Daniel Veillard authored
246 * docbSAXParseFile:
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
247 * @filename: the filename
248 * @encoding: a free form C string describing the SGML document encoding, or NULL
249 * @sax: the SAX handler block
250 * @userData: if using SAX, this pointer will be provided on callbacks.
251 *
252 * parse an SGML file and build a tree. Automatic support for ZLIB/Compress
253 * compressed document is provided by default if found at compile-time.
254 * It use the given SAX function block to handle the parsing callback.
255 * If sax is NULL, fallback to the default DOM tree building routines.
256 *
257 * Returns the resulting document tree
258 */
259
260 docbDocPtr
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
261 docbSAXParseFile(const char *filename ATTRIBUTE_UNUSED,
262 const char *encoding ATTRIBUTE_UNUSED,
263 docbSAXHandlerPtr sax ATTRIBUTE_UNUSED,
264 void *userData ATTRIBUTE_UNUSED)
265 {
266 static int deprecated = 0;
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
267
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
268 if (!deprecated) {
269 xmlGenericError(xmlGenericErrorContext,
270 "docbSAXParseFile() deprecated function reached\n");
271 deprecated = 1;
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
272 }
273
3648fcb let's see how much of a pain murrayc is really gonna be. Daniel
Daniel Veillard authored
274 return (xmlSAXParseFileWithData(sax, filename, 0, userData));
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
275 }
276
277 /**
01c13b5 code cleanup, especially the function comments. fixed a small bug when
Daniel Veillard authored
278 * docbParseFile:
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
279 * @filename: the filename
280 * @encoding: a free form C string describing document encoding, or NULL
281 *
282 * parse a Docbook SGML file and build a tree. Automatic support for
283 * ZLIB/Compress compressed document is provided by default if found
284 * at compile-time.
285 *
286 * Returns the resulting document tree
287 */
288
289 docbDocPtr
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
290 docbParseFile(const char *filename ATTRIBUTE_UNUSED,
291 const char *encoding ATTRIBUTE_UNUSED)
292 {
293 static int deprecated = 0;
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
294
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
295 if (!deprecated) {
296 xmlGenericError(xmlGenericErrorContext,
297 "docbParseFile() deprecated function reached\n");
298 deprecated = 1;
299 }
300
3648fcb let's see how much of a pain murrayc is really gonna be. Daniel
Daniel Veillard authored
301 return (xmlParseFile(filename));
877a7bd removing the broken pseudo SGML DocBook parser code. Daniel
Daniel Veillard authored
302 }
5d4644e revamped the elfgcchack.h format to cope with gcc4 change of aliasing
Daniel Veillard authored
303 #define bottom_DOCBparser
304 #include "elfgcchack.h"
eae522a Time to work on helping the Gnome Doc project, first step is reintegr…
Daniel Veillard authored
305 #endif /* LIBXML_DOCB_ENABLED */
Something went wrong with that request. Please try again.