Diff for /XML/debugXML.c between versions 1.22 and 1.23

version 1.22, 2000/02/29 16:16:17 version 1.23, 2000/04/03 18:45:48
Line 12 Line 12
 #else  #else
 #include "config.h"  #include "config.h"
 #endif  #endif
   
   #include "xmlversion.h"
   #ifdef LIBXML_DEBUG_ENABLED
   
 #include <stdio.h>  #include <stdio.h>
 #ifdef HAVE_STDLIB_H  #ifdef HAVE_STDLIB_H
 #include <stdlib.h>  #include <stdlib.h>
Line 19 Line 23
 #ifdef HAVE_STRING_H  #ifdef HAVE_STRING_H
 #include <string.h>  #include <string.h>
 #endif  #endif
 #include "xmlmemory.h"  #include <libxml/xmlmemory.h>
 #include "tree.h"  #include <libxml/tree.h>
 #include "parser.h"  #include <libxml/parser.h>
 #include "valid.h"  #include <libxml/valid.h>
 #include "debugXML.h"  #include <libxml/debugXML.h>
 #include "HTMLtree.h"  #include <libxml/HTMLtree.h>
 #include "HTMLparser.h"  #include <libxml/HTMLparser.h>
   
 #define IS_BLANK(c)                                                     \  #define IS_BLANK(c)                                                     \
   (((c) == '\n') || ((c) == '\r') || ((c) == '\t') || ((c) == ' '))    (((c) == '\n') || ((c) == '\r') || ((c) == '\t') || ((c) == ' '))
Line 1059  int Line 1063  int
 xmlShellCat(xmlShellCtxtPtr ctxt, char *arg, xmlNodePtr node,  xmlShellCat(xmlShellCtxtPtr ctxt, char *arg, xmlNodePtr node,
                   xmlNodePtr node2) {                    xmlNodePtr node2) {
     if (ctxt->doc->type == XML_HTML_DOCUMENT_NODE) {      if (ctxt->doc->type == XML_HTML_DOCUMENT_NODE) {
   #ifdef LIBXML_HTML_ENABLED
         if (node->type == XML_HTML_DOCUMENT_NODE)          if (node->type == XML_HTML_DOCUMENT_NODE)
             htmlDocDump(stdout, (htmlDocPtr) node);              htmlDocDump(stdout, (htmlDocPtr) node);
         else          else
             htmlNodeDumpFile(stdout, ctxt->doc, node);              htmlNodeDumpFile(stdout, ctxt->doc, node);
   #else
           if (node->type == XML_DOCUMENT_NODE)
               xmlDocDump(stdout, (xmlDocPtr) node);
           else
               xmlElemDump(stdout, ctxt->doc, node);
   #endif /* LIBXML_HTML_ENABLED */
     } else {      } else {
         if (node->type == XML_DOCUMENT_NODE)          if (node->type == XML_DOCUMENT_NODE)
             xmlDocDump(stdout, (xmlDocPtr) node);              xmlDocDump(stdout, (xmlDocPtr) node);
Line 1095  xmlShellLoad(xmlShellCtxtPtr ctxt, char Line 1106  xmlShellLoad(xmlShellCtxtPtr ctxt, char
         html = (ctxt->doc->type == XML_HTML_DOCUMENT_NODE);          html = (ctxt->doc->type == XML_HTML_DOCUMENT_NODE);
   
     if (html) {      if (html) {
   #ifdef LIBXML_HTML_ENABLED
         doc = htmlParseFile(filename, NULL);          doc = htmlParseFile(filename, NULL);
   #else   
           printf("HTML support not compiled in\n");
           doc = NULL;
   #endif /* LIBXML_HTML_ENABLED */
     } else {      } else {
         doc = xmlParseFile(filename);          doc = xmlParseFile(filename);
     }      }
Line 1104  xmlShellLoad(xmlShellCtxtPtr ctxt, char Line 1120  xmlShellLoad(xmlShellCtxtPtr ctxt, char
             xmlFreeDoc(ctxt->doc);              xmlFreeDoc(ctxt->doc);
         }          }
         ctxt->loaded = 1;          ctxt->loaded = 1;
   #ifdef LIBXML_XPATH_ENABLED
         xmlXPathFreeContext(ctxt->pctxt);          xmlXPathFreeContext(ctxt->pctxt);
   #endif /* LIBXML_XPATH_ENABLED */
         xmlFree(ctxt->filename);          xmlFree(ctxt->filename);
         ctxt->doc = doc;          ctxt->doc = doc;
         ctxt->node = (xmlNodePtr) doc;             ctxt->node = (xmlNodePtr) doc;   
   #ifdef LIBXML_XPATH_ENABLED
         ctxt->pctxt = xmlXPathNewContext(doc);          ctxt->pctxt = xmlXPathNewContext(doc);
   #endif /* LIBXML_XPATH_ENABLED */
         ctxt->filename = (char *) xmlStrdup((xmlChar *) filename);          ctxt->filename = (char *) xmlStrdup((xmlChar *) filename);
     } else      } else
         return(-1);          return(-1);
Line 1151  xmlShellWrite(xmlShellCtxtPtr ctxt, char Line 1171  xmlShellWrite(xmlShellCtxtPtr ctxt, char
             }              }
             break;              break;
         case XML_HTML_DOCUMENT_NODE:          case XML_HTML_DOCUMENT_NODE:
   #ifdef LIBXML_HTML_ENABLED
             if (htmlSaveFile((char *) filename, ctxt->doc) < 0) {              if (htmlSaveFile((char *) filename, ctxt->doc) < 0) {
                 fprintf(stderr, "Failed to write to %s\n", filename);                  fprintf(stderr, "Failed to write to %s\n", filename);
                 return(-1);                  return(-1);
             }              }
   #else
               if (xmlSaveFile((char *) filename, ctxt->doc) < -1) {
                   fprintf(stderr, "Failed to write to %s\n", filename);
                   return(-1);
               }
   #endif /* LIBXML_HTML_ENABLED */
             break;              break;
         default: {          default: {
             FILE *f;              FILE *f;
Line 1203  xmlShellSave(xmlShellCtxtPtr ctxt, char Line 1230  xmlShellSave(xmlShellCtxtPtr ctxt, char
             }              }
             break;              break;
         case XML_HTML_DOCUMENT_NODE:          case XML_HTML_DOCUMENT_NODE:
   #ifdef LIBXML_HTML_ENABLED
             if (htmlSaveFile((char *) filename, ctxt->doc) < 0) {              if (htmlSaveFile((char *) filename, ctxt->doc) < 0) {
                 fprintf(stderr, "Failed to save to %s\n", filename);                  fprintf(stderr, "Failed to save to %s\n", filename);
             }              }
   #else
               if (xmlSaveFile((char *) filename, ctxt->doc) < 0) {
                   fprintf(stderr, "Failed to save to %s\n", filename);
               }
   #endif /* LIBXML_HTML_ENABLED */
             break;              break;
         default:          default:
             fprintf(stderr,               fprintf(stderr, 
Line 1444  xmlShell(xmlDocPtr doc, char *filename, Line 1477  xmlShell(xmlDocPtr doc, char *filename,
     ctxt->filename = (char *) xmlStrdup((xmlChar *) filename);      ctxt->filename = (char *) xmlStrdup((xmlChar *) filename);
     ctxt->node = (xmlNodePtr) ctxt->doc;               ctxt->node = (xmlNodePtr) ctxt->doc;         
   
   #ifdef LIBXML_XPATH_ENABLED
     ctxt->pctxt = xmlXPathNewContext(ctxt->doc);      ctxt->pctxt = xmlXPathNewContext(ctxt->doc);
     if (ctxt->pctxt == NULL) {      if (ctxt->pctxt == NULL) {
         xmlFree(ctxt);          xmlFree(ctxt);
         return;          return;
     }      }
   #endif /* LIBXML_XPATH_ENABLED */
     while (1) {      while (1) {
         if (ctxt->node == (xmlNodePtr) ctxt->doc)          if (ctxt->node == (xmlNodePtr) ctxt->doc)
             sprintf(prompt, "%s > ", "/");              sprintf(prompt, "%s > ", "/");
Line 1503  xmlShell(xmlDocPtr doc, char *filename, Line 1538  xmlShell(xmlDocPtr doc, char *filename,
                     xmlShellList(ctxt, NULL, ctxt->node, NULL);                      xmlShellList(ctxt, NULL, ctxt->node, NULL);
             } else {              } else {
                 ctxt->pctxt->node = ctxt->node;                  ctxt->pctxt->node = ctxt->node;
   #ifdef LIBXML_XPATH_ENABLED
                 if (ctxt->pctxt->nodelist != NULL)                  if (ctxt->pctxt->nodelist != NULL)
                     xmlXPathFreeNodeSet(ctxt->pctxt->nodelist);                      xmlXPathFreeNodeSet(ctxt->pctxt->nodelist);
                 ctxt->pctxt->nodelist = xmlXPathNodeSetCreate(ctxt->node);                  ctxt->pctxt->nodelist = xmlXPathNodeSetCreate(ctxt->node);
                 list = xmlXPathEval((xmlChar *) arg, ctxt->pctxt);                  list = xmlXPathEval((xmlChar *) arg, ctxt->pctxt);
   #else
                   list = NULL;
   #endif /* LIBXML_XPATH_ENABLED */
                 if (list != NULL) {                  if (list != NULL) {
                     switch (list->type) {                      switch (list->type) {
                         case XPATH_UNDEFINED:                          case XPATH_UNDEFINED:
Line 1539  xmlShell(xmlDocPtr doc, char *filename, Line 1578  xmlShell(xmlDocPtr doc, char *filename,
                 } else {                  } else {
                     fprintf(stderr, "%s: no such node\n", arg);                      fprintf(stderr, "%s: no such node\n", arg);
                 }                  }
   #ifdef LIBXML_XPATH_ENABLED
                 if (ctxt->pctxt->nodelist != NULL)                  if (ctxt->pctxt->nodelist != NULL)
                     xmlXPathFreeNodeSet(ctxt->pctxt->nodelist);                      xmlXPathFreeNodeSet(ctxt->pctxt->nodelist);
   #endif /* LIBXML_XPATH_ENABLED */
                 ctxt->pctxt->nodelist = NULL;                  ctxt->pctxt->nodelist = NULL;
             }              }
         } else if (!strcmp(command, "cd")) {          } else if (!strcmp(command, "cd")) {
Line 1548  xmlShell(xmlDocPtr doc, char *filename, Line 1589  xmlShell(xmlDocPtr doc, char *filename,
                 ctxt->node = (xmlNodePtr) ctxt->doc;                  ctxt->node = (xmlNodePtr) ctxt->doc;
             } else {              } else {
                 ctxt->pctxt->node = ctxt->node;                  ctxt->pctxt->node = ctxt->node;
   #ifdef LIBXML_XPATH_ENABLED
                 if (ctxt->pctxt->nodelist != NULL)                  if (ctxt->pctxt->nodelist != NULL)
                     xmlXPathFreeNodeSet(ctxt->pctxt->nodelist);                      xmlXPathFreeNodeSet(ctxt->pctxt->nodelist);
                 ctxt->pctxt->nodelist = xmlXPathNodeSetCreate(ctxt->node);                  ctxt->pctxt->nodelist = xmlXPathNodeSetCreate(ctxt->node);
                 list = xmlXPathEval((xmlChar *) arg, ctxt->pctxt);                  list = xmlXPathEval((xmlChar *) arg, ctxt->pctxt);
   #else
                   list = NULL;
   #endif /* LIBXML_XPATH_ENABLED */
                 if (list != NULL) {                  if (list != NULL) {
                     switch (list->type) {                      switch (list->type) {
                         case XPATH_UNDEFINED:                          case XPATH_UNDEFINED:
Line 1578  xmlShell(xmlDocPtr doc, char *filename, Line 1623  xmlShell(xmlDocPtr doc, char *filename,
                 } else {                  } else {
                     fprintf(stderr, "%s: no such node\n", arg);                      fprintf(stderr, "%s: no such node\n", arg);
                 }                  }
   #ifdef LIBXML_XPATH_ENABLED
                 if (ctxt->pctxt->nodelist != NULL)                  if (ctxt->pctxt->nodelist != NULL)
                     xmlXPathFreeNodeSet(ctxt->pctxt->nodelist);                      xmlXPathFreeNodeSet(ctxt->pctxt->nodelist);
   #endif /* LIBXML_XPATH_ENABLED */
                 ctxt->pctxt->nodelist = NULL;                  ctxt->pctxt->nodelist = NULL;
             }              }
         } else if (!strcmp(command, "cat")) {          } else if (!strcmp(command, "cat")) {
Line 1587  xmlShell(xmlDocPtr doc, char *filename, Line 1634  xmlShell(xmlDocPtr doc, char *filename,
                 xmlShellCat(ctxt, NULL, ctxt->node, NULL);                  xmlShellCat(ctxt, NULL, ctxt->node, NULL);
             } else {              } else {
                 ctxt->pctxt->node = ctxt->node;                  ctxt->pctxt->node = ctxt->node;
   #ifdef LIBXML_XPATH_ENABLED
                 if (ctxt->pctxt->nodelist != NULL)                  if (ctxt->pctxt->nodelist != NULL)
                     xmlXPathFreeNodeSet(ctxt->pctxt->nodelist);                      xmlXPathFreeNodeSet(ctxt->pctxt->nodelist);
                 ctxt->pctxt->nodelist = xmlXPathNodeSetCreate(ctxt->node);                  ctxt->pctxt->nodelist = xmlXPathNodeSetCreate(ctxt->node);
                 list = xmlXPathEval((xmlChar *) arg, ctxt->pctxt);                  list = xmlXPathEval((xmlChar *) arg, ctxt->pctxt);
   #else
                   list = NULL;
   #endif /* LIBXML_XPATH_ENABLED */
                 if (list != NULL) {                  if (list != NULL) {
                     switch (list->type) {                      switch (list->type) {
                         case XPATH_UNDEFINED:                          case XPATH_UNDEFINED:
Line 1620  xmlShell(xmlDocPtr doc, char *filename, Line 1671  xmlShell(xmlDocPtr doc, char *filename,
                 } else {                  } else {
                     fprintf(stderr, "%s: no such node\n", arg);                      fprintf(stderr, "%s: no such node\n", arg);
                 }                  }
   #ifdef LIBXML_XPATH_ENABLED
                 if (ctxt->pctxt->nodelist != NULL)                  if (ctxt->pctxt->nodelist != NULL)
                     xmlXPathFreeNodeSet(ctxt->pctxt->nodelist);                      xmlXPathFreeNodeSet(ctxt->pctxt->nodelist);
   #endif /* LIBXML_XPATH_ENABLED */
                 ctxt->pctxt->nodelist = NULL;                  ctxt->pctxt->nodelist = NULL;
             }              }
         } else {          } else {
Line 1629  xmlShell(xmlDocPtr doc, char *filename, Line 1682  xmlShell(xmlDocPtr doc, char *filename,
         }          }
         free(cmdline); /* not xmlFree here ! */          free(cmdline); /* not xmlFree here ! */
     }      }
   #ifdef LIBXML_XPATH_ENABLED
     xmlXPathFreeContext(ctxt->pctxt);      xmlXPathFreeContext(ctxt->pctxt);
   #endif /* LIBXML_XPATH_ENABLED */
     if (ctxt->loaded) {      if (ctxt->loaded) {
         xmlFreeDoc(ctxt->doc);          xmlFreeDoc(ctxt->doc);
     }      }
Line 1638  xmlShell(xmlDocPtr doc, char *filename, Line 1693  xmlShell(xmlDocPtr doc, char *filename,
         free(cmdline); /* not xmlFree here ! */          free(cmdline); /* not xmlFree here ! */
 }  }
   
   #endif /* LIBXML_DEBUG_ENABLED */

Removed from v.1.22  
changed lines
  Added in v.1.23


Webmaster