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