38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/*
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * DOCBparser.c : an attempt to parse SGML Docbook documents
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * This is deprecated !!!
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Code removed with release 2.6.0 it was broken.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * The doc are expect to be migrated to XML DocBook
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * See Copyright for the status of this software.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * daniel@veillard.com
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#define IN_LIBXML
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#include "libxml.h"
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#ifdef LIBXML_DOCB_ENABLED
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#include <libxml/xmlerror.h>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#include <libxml/DOCBparser.h>
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * docbEncodeEntities:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @out: a pointer to an array of bytes to store the result
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @outlen: the length of @out
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @in: a pointer to an array of UTF-8 chars
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @inlen: the length of @in
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @quoteChar: the quote character to escape (' or ") or zero.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Take a block of UTF-8 chars in and try to convert it to an ASCII
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * plus SGML entities block of chars out.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Returns 0 if success, -2 if the transcoding fails, or -1 otherwise
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * The value of @inlen after return is the number of octets consumed
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * as the return value is positive, else unpredictable.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * The value of @outlen after return is the number of octets consumed.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncint
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncdocbEncodeEntities(unsigned char *out ATTRIBUTE_UNUSED,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync int *outlen ATTRIBUTE_UNUSED,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync const unsigned char *in ATTRIBUTE_UNUSED,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync int *inlen ATTRIBUTE_UNUSED,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync int quoteChar ATTRIBUTE_UNUSED)
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync{
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync static int deprecated = 0;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync if (!deprecated) {
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlGenericError(xmlGenericErrorContext,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync "docbEncodeEntities() deprecated function reached\n");
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync deprecated = 1;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync }
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync return(-1);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync}
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * docbParseDocument:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @ctxt: an SGML parser context
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * parse an SGML document (and build a tree if using the standard SAX
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * interface).
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Returns 0, -1 in case of error. the parser context is augmented
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * as a result of the parsing.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncint
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncdocbParseDocument(docbParserCtxtPtr ctxt ATTRIBUTE_UNUSED)
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync{
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync static int deprecated = 0;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync if (!deprecated) {
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlGenericError(xmlGenericErrorContext,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync "docbParseDocument() deprecated function reached\n");
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync deprecated = 1;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync }
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync return (xmlParseDocument(ctxt));
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync}
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * docbFreeParserCtxt:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @ctxt: an SGML parser context
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Free all the memory used by a parser context. However the parsed
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * document in ctxt->myDoc is not freed.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncvoid
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncdocbFreeParserCtxt(docbParserCtxtPtr ctxt ATTRIBUTE_UNUSED)
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync{
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync static int deprecated = 0;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync if (!deprecated) {
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlGenericError(xmlGenericErrorContext,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync "docbFreeParserCtxt() deprecated function reached\n");
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync deprecated = 1;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync }
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlFreeParserCtxt(ctxt);
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync}
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * docbParseChunk:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @ctxt: an XML parser context
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @chunk: an char array
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @size: the size in byte of the chunk
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @terminate: last chunk indicator
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Parse a Chunk of memory
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Returns zero if no error, the xmlParserErrors otherwise.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncint
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncdocbParseChunk(docbParserCtxtPtr ctxt ATTRIBUTE_UNUSED,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync const char *chunk ATTRIBUTE_UNUSED,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync int size ATTRIBUTE_UNUSED,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync int terminate ATTRIBUTE_UNUSED)
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync{
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync static int deprecated = 0;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync if (!deprecated) {
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlGenericError(xmlGenericErrorContext,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync "docbParseChunk() deprecated function reached\n");
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync deprecated = 1;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync }
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync return (xmlParseChunk(ctxt, chunk, size, terminate));
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync}
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * docbCreatePushParserCtxt:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @sax: a SAX handler
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @user_data: The user data returned on SAX callbacks
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @chunk: a pointer to an array of chars
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @size: number of chars in the array
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @filename: an optional file name or URI
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @enc: an optional encoding
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Create a parser context for using the DocBook SGML parser in push mode
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * To allow content encoding detection, @size should be >= 4
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * The value of @filename is used for fetching external entities
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * and error/warning reports.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Returns the new parser context or NULL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncdocbParserCtxtPtr
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncdocbCreatePushParserCtxt(docbSAXHandlerPtr sax ATTRIBUTE_UNUSED,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync void *user_data ATTRIBUTE_UNUSED,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync const char *chunk ATTRIBUTE_UNUSED,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync int size ATTRIBUTE_UNUSED,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync const char *filename ATTRIBUTE_UNUSED,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlCharEncoding enc ATTRIBUTE_UNUSED)
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync{
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync static int deprecated = 0;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync if (!deprecated) {
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlGenericError(xmlGenericErrorContext,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync "docbParseChunk() deprecated function reached\n");
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync deprecated = 1;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync }
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync return(xmlCreatePushParserCtxt(sax, user_data, chunk, size, filename));
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync}
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * docbSAXParseDoc:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @cur: a pointer to an array of xmlChar
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @encoding: a free form C string describing the SGML document encoding, or NULL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @sax: the SAX handler block
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @userData: if using SAX, this pointer will be provided on callbacks.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * parse an SGML in-memory document and build a tree.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * It use the given SAX function block to handle the parsing callback.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * If sax is NULL, fallback to the default DOM tree building routines.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Returns the resulting document tree
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncdocbDocPtr
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncdocbSAXParseDoc(xmlChar * cur ATTRIBUTE_UNUSED,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync const char *encoding ATTRIBUTE_UNUSED,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync docbSAXHandlerPtr sax ATTRIBUTE_UNUSED,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync void *userData ATTRIBUTE_UNUSED)
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync{
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync static int deprecated = 0;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync if (!deprecated) {
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlGenericError(xmlGenericErrorContext,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync "docbParseChunk() deprecated function reached\n");
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync deprecated = 1;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync }
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync return (xmlSAXParseMemoryWithData(sax, (const char *)cur,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlStrlen((const xmlChar *) cur), 0, userData));
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync}
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * docbParseDoc:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @cur: a pointer to an array of xmlChar
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @encoding: a free form C string describing the SGML document encoding, or NULL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * parse an SGML in-memory document and build a tree.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Returns the resulting document tree
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncdocbDocPtr
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncdocbParseDoc(xmlChar * cur ATTRIBUTE_UNUSED,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync const char *encoding ATTRIBUTE_UNUSED)
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync{
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync static int deprecated = 0;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync if (!deprecated) {
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlGenericError(xmlGenericErrorContext,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync "docbParseChunk() deprecated function reached\n");
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync deprecated = 1;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync }
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync return (xmlParseDoc(cur));
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync}
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * docbCreateFileParserCtxt:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @filename: the filename
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @encoding: the SGML document encoding, or NULL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Create a parser context for a file content.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Automatic support for ZLIB/Compress compressed document is provided
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * by default if found at compile-time.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Returns the new parser context or NULL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncdocbParserCtxtPtr
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncdocbCreateFileParserCtxt(const char *filename ATTRIBUTE_UNUSED,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync const char *encoding ATTRIBUTE_UNUSED)
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync{
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync static int deprecated = 0;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync if (!deprecated) {
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlGenericError(xmlGenericErrorContext,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync "docbCreateFileParserCtxt() deprecated function reached\n");
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync deprecated = 1;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync }
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync return (xmlCreateFileParserCtxt(filename));
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync}
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * docbSAXParseFile:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @filename: the filename
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @encoding: a free form C string describing the SGML document encoding, or NULL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @sax: the SAX handler block
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @userData: if using SAX, this pointer will be provided on callbacks.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * parse an SGML file and build a tree. Automatic support for ZLIB/Compress
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * compressed document is provided by default if found at compile-time.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * It use the given SAX function block to handle the parsing callback.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * If sax is NULL, fallback to the default DOM tree building routines.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Returns the resulting document tree
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncdocbDocPtr
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncdocbSAXParseFile(const char *filename ATTRIBUTE_UNUSED,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync const char *encoding ATTRIBUTE_UNUSED,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync docbSAXHandlerPtr sax ATTRIBUTE_UNUSED,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync void *userData ATTRIBUTE_UNUSED)
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync{
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync static int deprecated = 0;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync if (!deprecated) {
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlGenericError(xmlGenericErrorContext,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync "docbSAXParseFile() deprecated function reached\n");
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync deprecated = 1;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync }
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync return (xmlSAXParseFileWithData(sax, filename, 0, userData));
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync}
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync/**
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * docbParseFile:
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @filename: the filename
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * @encoding: a free form C string describing document encoding, or NULL
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * parse a Docbook SGML file and build a tree. Automatic support for
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * ZLIB/Compress compressed document is provided by default if found
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * at compile-time.
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync *
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync * Returns the resulting document tree
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync */
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncdocbDocPtr
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsyncdocbParseFile(const char *filename ATTRIBUTE_UNUSED,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync const char *encoding ATTRIBUTE_UNUSED)
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync{
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync static int deprecated = 0;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync if (!deprecated) {
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync xmlGenericError(xmlGenericErrorContext,
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync "docbParseFile() deprecated function reached\n");
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync deprecated = 1;
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync }
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync return (xmlParseFile(filename));
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync}
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#define bottom_DOCBparser
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#include "elfgcchack.h"
38ae7e4efe803ea78b6499cd05a394db32623e41vboxsync#endif /* LIBXML_DOCB_ENABLED */