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