/ libxml2 / DOCBparser.c
DOCBparser.c
  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
 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
 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
 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
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
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
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
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
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
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
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 */