1 /*
2  * DOCBparser.c : an attempt to parse SGML Docbook documents
3  *
4  * This is deprecated !!!
5  * Code removed with release 2.6.0 it was broken.
6  * The doc are expect to be migrated to XML DocBook
7  *
8  * See Copyright for the status of this software.
9  *
10  * daniel@veillard.com
11  */
12 
13 #define IN_LIBXML
14 #include "libxml.h"
15 #ifdef LIBXML_DOCB_ENABLED
16 
17 #include <libxml/xmlerror.h>
18 #include <libxml/DOCBparser.h>
19 
20 /**
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.
27  *
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.
30  *
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.
35  */
36 int
docbEncodeEntities(unsigned char * out ATTRIBUTE_UNUSED,int * outlen ATTRIBUTE_UNUSED,const unsigned char * in ATTRIBUTE_UNUSED,int * inlen ATTRIBUTE_UNUSED,int quoteChar ATTRIBUTE_UNUSED)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)
42 {
43     static int deprecated = 0;
44 
45     if (!deprecated) {
46         xmlGenericError(xmlGenericErrorContext,
47                         "docbEncodeEntities() deprecated function reached\n");
48         deprecated = 1;
49     }
50     return(-1);
51 }
52 
53 /**
54  * docbParseDocument:
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
docbParseDocument(docbParserCtxtPtr ctxt ATTRIBUTE_UNUSED)65 docbParseDocument(docbParserCtxtPtr ctxt ATTRIBUTE_UNUSED)
66 {
67     static int deprecated = 0;
68 
69     if (!deprecated) {
70         xmlGenericError(xmlGenericErrorContext,
71                         "docbParseDocument() deprecated function reached\n");
72         deprecated = 1;
73     }
74     return (xmlParseDocument(ctxt));
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
docbFreeParserCtxt(docbParserCtxtPtr ctxt ATTRIBUTE_UNUSED)86 docbFreeParserCtxt(docbParserCtxtPtr ctxt ATTRIBUTE_UNUSED)
87 {
88     static int deprecated = 0;
89 
90     if (!deprecated) {
91         xmlGenericError(xmlGenericErrorContext,
92                         "docbFreeParserCtxt() deprecated function reached\n");
93         deprecated = 1;
94     }
95     xmlFreeParserCtxt(ctxt);
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
docbParseChunk(docbParserCtxtPtr ctxt ATTRIBUTE_UNUSED,const char * chunk ATTRIBUTE_UNUSED,int size ATTRIBUTE_UNUSED,int terminate ATTRIBUTE_UNUSED)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;
116 
117     if (!deprecated) {
118         xmlGenericError(xmlGenericErrorContext,
119                         "docbParseChunk() deprecated function reached\n");
120         deprecated = 1;
121     }
122 
123     return (xmlParseChunk(ctxt, chunk, size, terminate));
124 }
125 
126 /**
127  * docbCreatePushParserCtxt:
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
docbCreatePushParserCtxt(docbSAXHandlerPtr sax ATTRIBUTE_UNUSED,void * user_data ATTRIBUTE_UNUSED,const char * chunk ATTRIBUTE_UNUSED,int size ATTRIBUTE_UNUSED,const char * filename ATTRIBUTE_UNUSED,xmlCharEncoding enc ATTRIBUTE_UNUSED)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;
151 
152     if (!deprecated) {
153         xmlGenericError(xmlGenericErrorContext,
154                         "docbParseChunk() deprecated function reached\n");
155         deprecated = 1;
156     }
157 
158     return(xmlCreatePushParserCtxt(sax, user_data, chunk, size, filename));
159 }
160 
161 /**
162  * docbSAXParseDoc:
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
docbSAXParseDoc(xmlChar * cur ATTRIBUTE_UNUSED,const char * encoding ATTRIBUTE_UNUSED,docbSAXHandlerPtr sax ATTRIBUTE_UNUSED,void * userData ATTRIBUTE_UNUSED)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;
182 
183     if (!deprecated) {
184         xmlGenericError(xmlGenericErrorContext,
185                         "docbParseChunk() deprecated function reached\n");
186         deprecated = 1;
187     }
188 
189     return (xmlSAXParseMemoryWithData(sax, (const char *)cur,
190 			  xmlStrlen((const xmlChar *) cur), 0,  userData));
191 }
192 
193 /**
194  * docbParseDoc:
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
docbParseDoc(xmlChar * cur ATTRIBUTE_UNUSED,const char * encoding ATTRIBUTE_UNUSED)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 
215     return (xmlParseDoc(cur));
216 }
217 
218 
219 /**
220  * docbCreateFileParserCtxt:
221  * @filename:  the filename
222  * @encoding:  the SGML document encoding, or NULL
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
docbCreateFileParserCtxt(const char * filename ATTRIBUTE_UNUSED,const char * encoding ATTRIBUTE_UNUSED)231 docbCreateFileParserCtxt(const char *filename ATTRIBUTE_UNUSED,
232                          const char *encoding ATTRIBUTE_UNUSED)
233 {
234     static int deprecated = 0;
235 
236     if (!deprecated) {
237         xmlGenericError(xmlGenericErrorContext,
238                         "docbCreateFileParserCtxt() deprecated function reached\n");
239         deprecated = 1;
240     }
241 
242     return (xmlCreateFileParserCtxt(filename));
243 }
244 
245 /**
246  * docbSAXParseFile:
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
docbSAXParseFile(const char * filename ATTRIBUTE_UNUSED,const char * encoding ATTRIBUTE_UNUSED,docbSAXHandlerPtr sax ATTRIBUTE_UNUSED,void * userData ATTRIBUTE_UNUSED)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;
267 
268     if (!deprecated) {
269         xmlGenericError(xmlGenericErrorContext,
270                         "docbSAXParseFile() deprecated function reached\n");
271         deprecated = 1;
272     }
273 
274     return (xmlSAXParseFileWithData(sax, filename, 0, userData));
275 }
276 
277 /**
278  * docbParseFile:
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
docbParseFile(const char * filename ATTRIBUTE_UNUSED,const char * encoding ATTRIBUTE_UNUSED)290 docbParseFile(const char *filename ATTRIBUTE_UNUSED,
291               const char *encoding ATTRIBUTE_UNUSED)
292 {
293     static int deprecated = 0;
294 
295     if (!deprecated) {
296         xmlGenericError(xmlGenericErrorContext,
297                         "docbParseFile() deprecated function reached\n");
298         deprecated = 1;
299     }
300 
301     return (xmlParseFile(filename));
302 }
303 #define bottom_DOCBparser
304 #include "elfgcchack.h"
305 #endif /* LIBXML_DOCB_ENABLED */
306