(root)/
gettext-0.22.4/
gnulib-local/
lib/
libxml/
debugXML.in.h
       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   * Author: Daniel Veillard
      32   */
      33  
      34  /*
      35   * Summary: Tree debugging APIs
      36   * Description: Interfaces to a set of routines used for debugging the tree
      37   *              produced by the XML parser.
      38   */
      39  
      40  #ifndef __DEBUG_XML__
      41  #define __DEBUG_XML__
      42  #include <stdio.h>
      43  #include <libxml/xmlversion.h>
      44  #include <libxml/tree.h>
      45  
      46  #ifdef LIBXML_DEBUG_ENABLED
      47  
      48  #include <libxml/xpath.h>
      49  
      50  #ifdef __cplusplus
      51  extern "C" {
      52  #endif
      53  
      54  /*
      55   * The standard Dump routines.
      56   */
      57  XMLPUBFUN void XMLCALL
      58  	xmlDebugDumpString	(FILE *output,
      59  				 const xmlChar *str);
      60  XMLPUBFUN void XMLCALL
      61  	xmlDebugDumpAttr	(FILE *output,
      62  				 xmlAttrPtr attr,
      63  				 int depth);
      64  XMLPUBFUN void XMLCALL
      65  	xmlDebugDumpAttrList	(FILE *output,
      66  				 xmlAttrPtr attr,
      67  				 int depth);
      68  XMLPUBFUN void XMLCALL
      69  	xmlDebugDumpOneNode	(FILE *output,
      70  				 xmlNodePtr node,
      71  				 int depth);
      72  XMLPUBFUN void XMLCALL
      73  	xmlDebugDumpNode	(FILE *output,
      74  				 xmlNodePtr node,
      75  				 int depth);
      76  XMLPUBFUN void XMLCALL
      77  	xmlDebugDumpNodeList	(FILE *output,
      78  				 xmlNodePtr node,
      79  				 int depth);
      80  XMLPUBFUN void XMLCALL
      81  	xmlDebugDumpDocumentHead(FILE *output,
      82  				 xmlDocPtr doc);
      83  XMLPUBFUN void XMLCALL
      84  	xmlDebugDumpDocument	(FILE *output,
      85  				 xmlDocPtr doc);
      86  XMLPUBFUN void XMLCALL
      87  	xmlDebugDumpDTD		(FILE *output,
      88  				 xmlDtdPtr dtd);
      89  XMLPUBFUN void XMLCALL
      90  	xmlDebugDumpEntities	(FILE *output,
      91  				 xmlDocPtr doc);
      92  
      93  /****************************************************************
      94   *								*
      95   *			Checking routines			*
      96   *								*
      97   ****************************************************************/
      98  
      99  XMLPUBFUN int XMLCALL
     100  	xmlDebugCheckDocument	(FILE * output,
     101  				 xmlDocPtr doc);
     102  
     103  /****************************************************************
     104   *								*
     105   *			XML shell helpers			*
     106   *								*
     107   ****************************************************************/
     108  
     109  XMLPUBFUN void XMLCALL
     110  	xmlLsOneNode		(FILE *output, xmlNodePtr node);
     111  XMLPUBFUN int XMLCALL
     112  	xmlLsCountNode		(xmlNodePtr node);
     113  
     114  XMLPUBFUN const char * XMLCALL
     115  	xmlBoolToText		(int boolval);
     116  
     117  /****************************************************************
     118   *								*
     119   *	 The XML shell related structures and functions		*
     120   *								*
     121   ****************************************************************/
     122  
     123  #ifdef LIBXML_XPATH_ENABLED
     124  /**
     125   * xmlShellReadlineFunc:
     126   * @prompt:  a string prompt
     127   *
     128   * This is a generic signature for the XML shell input function.
     129   *
     130   * Returns a string which will be freed by the Shell.
     131   */
     132  typedef char * (* xmlShellReadlineFunc)(char *prompt);
     133  
     134  /**
     135   * xmlShellCtxt:
     136   *
     137   * A debugging shell context.
     138   * TODO: add the defined function tables.
     139   */
     140  typedef struct _xmlShellCtxt xmlShellCtxt;
     141  typedef xmlShellCtxt *xmlShellCtxtPtr;
     142  struct _xmlShellCtxt {
     143      char *filename;
     144      xmlDocPtr doc;
     145      xmlNodePtr node;
     146      xmlXPathContextPtr pctxt;
     147      int loaded;
     148      FILE *output;
     149      xmlShellReadlineFunc input;
     150  };
     151  
     152  /**
     153   * xmlShellCmd:
     154   * @ctxt:  a shell context
     155   * @arg:  a string argument
     156   * @node:  a first node
     157   * @node2:  a second node
     158   *
     159   * This is a generic signature for the XML shell functions.
     160   *
     161   * Returns an int, negative returns indicating errors.
     162   */
     163  typedef int (* xmlShellCmd) (xmlShellCtxtPtr ctxt,
     164                               char *arg,
     165  			     xmlNodePtr node,
     166  			     xmlNodePtr node2);
     167  
     168  XMLPUBFUN void XMLCALL
     169  	xmlShellPrintXPathError	(int errorType,
     170  				 const char *arg);
     171  XMLPUBFUN void XMLCALL
     172  	xmlShellPrintXPathResult(xmlXPathObjectPtr list);
     173  XMLPUBFUN int XMLCALL
     174  	xmlShellList		(xmlShellCtxtPtr ctxt,
     175  				 char *arg,
     176  				 xmlNodePtr node,
     177  				 xmlNodePtr node2);
     178  XMLPUBFUN int XMLCALL
     179  	xmlShellBase		(xmlShellCtxtPtr ctxt,
     180  				 char *arg,
     181  				 xmlNodePtr node,
     182  				 xmlNodePtr node2);
     183  XMLPUBFUN int XMLCALL
     184  	xmlShellDir		(xmlShellCtxtPtr ctxt,
     185  				 char *arg,
     186  				 xmlNodePtr node,
     187  				 xmlNodePtr node2);
     188  XMLPUBFUN int XMLCALL
     189  	xmlShellLoad		(xmlShellCtxtPtr ctxt,
     190  				 char *filename,
     191  				 xmlNodePtr node,
     192  				 xmlNodePtr node2);
     193  #ifdef LIBXML_OUTPUT_ENABLED
     194  XMLPUBFUN void XMLCALL
     195  	xmlShellPrintNode	(xmlNodePtr node);
     196  XMLPUBFUN int XMLCALL
     197  	xmlShellCat		(xmlShellCtxtPtr ctxt,
     198  				 char *arg,
     199  				 xmlNodePtr node,
     200  				 xmlNodePtr node2);
     201  XMLPUBFUN int XMLCALL
     202  	xmlShellWrite		(xmlShellCtxtPtr ctxt,
     203  				 char *filename,
     204  				 xmlNodePtr node,
     205  				 xmlNodePtr node2);
     206  XMLPUBFUN int XMLCALL
     207  	xmlShellSave		(xmlShellCtxtPtr ctxt,
     208  				 char *filename,
     209  				 xmlNodePtr node,
     210  				 xmlNodePtr node2);
     211  #endif /* LIBXML_OUTPUT_ENABLED */
     212  #ifdef LIBXML_VALID_ENABLED
     213  XMLPUBFUN int XMLCALL
     214  	xmlShellValidate	(xmlShellCtxtPtr ctxt,
     215  				 char *dtd,
     216  				 xmlNodePtr node,
     217  				 xmlNodePtr node2);
     218  #endif /* LIBXML_VALID_ENABLED */
     219  XMLPUBFUN int XMLCALL
     220  	xmlShellDu		(xmlShellCtxtPtr ctxt,
     221  				 char *arg,
     222  				 xmlNodePtr tree,
     223  				 xmlNodePtr node2);
     224  XMLPUBFUN int XMLCALL
     225  	xmlShellPwd		(xmlShellCtxtPtr ctxt,
     226  				 char *buffer,
     227  				 xmlNodePtr node,
     228  				 xmlNodePtr node2);
     229  
     230  /*
     231   * The Shell interface.
     232   */
     233  XMLPUBFUN void XMLCALL
     234  	xmlShell		(xmlDocPtr doc,
     235  				 char *filename,
     236  				 xmlShellReadlineFunc input,
     237  				 FILE *output);
     238  
     239  #endif /* LIBXML_XPATH_ENABLED */
     240  
     241  #ifdef __cplusplus
     242  }
     243  #endif
     244  
     245  #endif /* LIBXML_DEBUG_ENABLED */
     246  #endif /* __DEBUG_XML__ */