(root)/
gettext-0.22.4/
gnulib-local/
lib/
libxml/
SAX.c
       1  /* libxml2 - Library for parsing XML documents
       2   * Copyright (C) 2006-2019 Free Software Foundation, Inc.
       3   *
       4   * This file is not part of the GNU gettext program, but is used with
       5   * GNU gettext.
       6   *
       7   * The original copyright notice is as follows:
       8   */
       9  
      10  /*
      11   * Copyright (C) 1998-2012 Daniel Veillard.  All Rights Reserved.
      12   *
      13   * Permission is hereby granted, free of charge, to any person obtaining a copy
      14   * of this software and associated documentation files (the "Software"), to deal
      15   * in the Software without restriction, including without limitation the rights
      16   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
      17   * copies of the Software, and to permit persons to whom the Software is fur-
      18   * nished to do so, subject to the following conditions:
      19   *
      20   * The above copyright notice and this permission notice shall be included in
      21   * all copies or substantial portions of the Software.
      22   *
      23   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
      24   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
      25   * NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
      26   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
      27   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
      28   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
      29   * THE SOFTWARE.
      30   *
      31   * Daniel Veillard <daniel@veillard.com>
      32   */
      33  
      34  /*
      35   * SAX.c : Old SAX v1 handlers to build a tree.
      36   *         Deprecated except for compatibility
      37   */
      38  
      39  #define IN_LIBXML
      40  #include "libxml.h"
      41  #include <stdlib.h>
      42  #include <string.h>
      43  #include <libxml/xmlmemory.h>
      44  #include <libxml/tree.h>
      45  #include <libxml/parser.h>
      46  #include <libxml/parserInternals.h>
      47  #include <libxml/valid.h>
      48  #include <libxml/entities.h>
      49  #include <libxml/xmlerror.h>
      50  #include <libxml/debugXML.h>
      51  #include <libxml/xmlIO.h>
      52  #include <libxml/SAX.h>
      53  #include <libxml/uri.h>
      54  #include <libxml/valid.h>
      55  #include <libxml/HTMLtree.h>
      56  #include <libxml/globals.h>
      57  #include <libxml/SAX2.h>
      58  
      59  #ifdef LIBXML_LEGACY_ENABLED
      60  #ifdef LIBXML_SAX1_ENABLED
      61  /**
      62   * initxmlDefaultSAXHandler:
      63   * @hdlr:  the SAX handler
      64   * @warning:  flag if non-zero sets the handler warning procedure
      65   *
      66   * Initialize the default XML SAX version 1 handler
      67   * DEPRECATED: use xmlSAX2InitDefaultSAXHandler() for the new SAX2 blocks
      68   */
      69  void
      70  initxmlDefaultSAXHandler(xmlSAXHandlerV1 *hdlr, int warning)
      71  {
      72  
      73      if(hdlr->initialized == 1)
      74  	return;
      75  
      76      hdlr->internalSubset = xmlSAX2InternalSubset;
      77      hdlr->externalSubset = xmlSAX2ExternalSubset;
      78      hdlr->isStandalone = xmlSAX2IsStandalone;
      79      hdlr->hasInternalSubset = xmlSAX2HasInternalSubset;
      80      hdlr->hasExternalSubset = xmlSAX2HasExternalSubset;
      81      hdlr->resolveEntity = xmlSAX2ResolveEntity;
      82      hdlr->getEntity = xmlSAX2GetEntity;
      83      hdlr->getParameterEntity = xmlSAX2GetParameterEntity;
      84      hdlr->entityDecl = xmlSAX2EntityDecl;
      85      hdlr->attributeDecl = xmlSAX2AttributeDecl;
      86      hdlr->elementDecl = xmlSAX2ElementDecl;
      87      hdlr->notationDecl = xmlSAX2NotationDecl;
      88      hdlr->unparsedEntityDecl = xmlSAX2UnparsedEntityDecl;
      89      hdlr->setDocumentLocator = xmlSAX2SetDocumentLocator;
      90      hdlr->startDocument = xmlSAX2StartDocument;
      91      hdlr->endDocument = xmlSAX2EndDocument;
      92      hdlr->startElement = xmlSAX2StartElement;
      93      hdlr->endElement = xmlSAX2EndElement;
      94      hdlr->reference = xmlSAX2Reference;
      95      hdlr->characters = xmlSAX2Characters;
      96      hdlr->cdataBlock = xmlSAX2CDataBlock;
      97      hdlr->ignorableWhitespace = xmlSAX2Characters;
      98      hdlr->processingInstruction = xmlSAX2ProcessingInstruction;
      99      if (warning == 0)
     100  	hdlr->warning = NULL;
     101      else
     102  	hdlr->warning = xmlParserWarning;
     103      hdlr->error = xmlParserError;
     104      hdlr->fatalError = xmlParserError;
     105  
     106      hdlr->initialized = 1;
     107  }
     108  
     109  #ifdef LIBXML_HTML_ENABLED
     110  
     111  /**
     112   * inithtmlDefaultSAXHandler:
     113   * @hdlr:  the SAX handler
     114   *
     115   * Initialize the default HTML SAX version 1 handler
     116   * DEPRECATED: use xmlSAX2InitHtmlDefaultSAXHandler() for the new SAX2 blocks
     117   */
     118  void
     119  inithtmlDefaultSAXHandler(xmlSAXHandlerV1 *hdlr)
     120  {
     121      if(hdlr->initialized == 1)
     122  	return;
     123  
     124      hdlr->internalSubset = xmlSAX2InternalSubset;
     125      hdlr->externalSubset = NULL;
     126      hdlr->isStandalone = NULL;
     127      hdlr->hasInternalSubset = NULL;
     128      hdlr->hasExternalSubset = NULL;
     129      hdlr->resolveEntity = NULL;
     130      hdlr->getEntity = xmlSAX2GetEntity;
     131      hdlr->getParameterEntity = NULL;
     132      hdlr->entityDecl = NULL;
     133      hdlr->attributeDecl = NULL;
     134      hdlr->elementDecl = NULL;
     135      hdlr->notationDecl = NULL;
     136      hdlr->unparsedEntityDecl = NULL;
     137      hdlr->setDocumentLocator = xmlSAX2SetDocumentLocator;
     138      hdlr->startDocument = xmlSAX2StartDocument;
     139      hdlr->endDocument = xmlSAX2EndDocument;
     140      hdlr->startElement = xmlSAX2StartElement;
     141      hdlr->endElement = xmlSAX2EndElement;
     142      hdlr->reference = NULL;
     143      hdlr->characters = xmlSAX2Characters;
     144      hdlr->cdataBlock = xmlSAX2CDataBlock;
     145      hdlr->ignorableWhitespace = xmlSAX2IgnorableWhitespace;
     146      hdlr->processingInstruction = xmlSAX2ProcessingInstruction;
     147      hdlr->comment = xmlSAX2Comment;
     148      hdlr->warning = xmlParserWarning;
     149      hdlr->error = xmlParserError;
     150      hdlr->fatalError = xmlParserError;
     151  
     152      hdlr->initialized = 1;
     153  }
     154  
     155  #endif /* LIBXML_HTML_ENABLED */
     156  
     157  #ifdef LIBXML_DOCB_ENABLED
     158  /**
     159   * initdocbDefaultSAXHandler:
     160   * @hdlr:  the SAX handler
     161   *
     162   * Initialize the default DocBook SAX version 1 handler
     163   * DEPRECATED: use xmlSAX2InitDocbDefaultSAXHandler() for the new SAX2 blocks
     164   */
     165  void
     166  initdocbDefaultSAXHandler(xmlSAXHandlerV1 *hdlr)
     167  {
     168      if(hdlr->initialized == 1)
     169  	return;
     170  
     171      hdlr->internalSubset = xmlSAX2InternalSubset;
     172      hdlr->externalSubset = NULL;
     173      hdlr->isStandalone = xmlSAX2IsStandalone;
     174      hdlr->hasInternalSubset = xmlSAX2HasInternalSubset;
     175      hdlr->hasExternalSubset = xmlSAX2HasExternalSubset;
     176      hdlr->resolveEntity = xmlSAX2ResolveEntity;
     177      hdlr->getEntity = xmlSAX2GetEntity;
     178      hdlr->getParameterEntity = NULL;
     179      hdlr->entityDecl = xmlSAX2EntityDecl;
     180      hdlr->attributeDecl = NULL;
     181      hdlr->elementDecl = NULL;
     182      hdlr->notationDecl = NULL;
     183      hdlr->unparsedEntityDecl = NULL;
     184      hdlr->setDocumentLocator = xmlSAX2SetDocumentLocator;
     185      hdlr->startDocument = xmlSAX2StartDocument;
     186      hdlr->endDocument = xmlSAX2EndDocument;
     187      hdlr->startElement = xmlSAX2StartElement;
     188      hdlr->endElement = xmlSAX2EndElement;
     189      hdlr->reference = xmlSAX2Reference;
     190      hdlr->characters = xmlSAX2Characters;
     191      hdlr->cdataBlock = NULL;
     192      hdlr->ignorableWhitespace = xmlSAX2IgnorableWhitespace;
     193      hdlr->processingInstruction = NULL;
     194      hdlr->comment = xmlSAX2Comment;
     195      hdlr->warning = xmlParserWarning;
     196      hdlr->error = xmlParserError;
     197      hdlr->fatalError = xmlParserError;
     198  
     199      hdlr->initialized = 1;
     200  }
     201  
     202  #endif /* LIBXML_DOCB_ENABLED */
     203  
     204  #endif /* LIBXML_SAX1_ENABLED */
     205  
     206  #define bottom_SAX
     207  #include "elfgcchack.h"
     208  #endif /* LIBXML_LEGACY_ENABLED */