Diff for /parser3/src/main/pa_xml_exception.C between versions 1.3 and 1.13

version 1.3, 2004/02/11 15:33:16 version 1.13, 2023/09/26 20:49:10
Line 1 Line 1
 /** @file  /** @file
         Parser: exception class.          Parser: exception class.
   
         Copyright (c) 2001-2004 ArtLebedev Group (http://www.artlebedev.com)          Copyright (c) 2001-2023 Art. Lebedev Studio (http://www.artlebedev.com)
         Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)          Authors: Konstantin Morshnev <moko@design.ru>, Alexandr Petrosian <paf@design.ru>
 */  */
   
 #include "pa_config_includes.h"  #include "pa_config_includes.h"
   
 #ifdef XML  #ifdef XML
   
 static const char * const IDENT="$Date$";  
   
 #include "pa_xml_exception.h"  #include "pa_xml_exception.h"
 #include "pa_globals.h"  #include "pa_globals.h"
 #include "pa_common.h"  #include "pa_common.h"
   #include "pa_charset.h"
   
   volatile const char * IDENT_PA_XML_EXCEPTION_C="$Id$" IDENT_PA_XML_EXCEPTION_H;
   
 // methods  // methods
   
 XmlException::XmlException(  XmlException::XmlException(const String* aproblem_source, const char* aproblem_comment, ...) {
         const String* aproblem_source,           ftype="xml";
         GdomeException& exc) {          fproblem_source=aproblem_source;
   
           fcomment=new(PointerFreeGC) char[MAX_STRING];
           va_list args;
           va_start(args, aproblem_comment);
           vsnprintf((char *)fcomment, MAX_STRING, aproblem_comment, args);
           va_end(args);
   }
   
   XmlException::XmlException(const String* aproblem_source, Request& r){
         ftype="xml";          ftype="xml";
         fproblem_source=aproblem_source;          fproblem_source=aproblem_source;
   
         const char* xml_generic_errors=xmlGenericErrors();          if(const char* xml_generic_errors=xmlGenericErrors()){
         if(xml_generic_errors || exc) {                  fcomment=pa_strdup(xml_generic_errors);
                 const char* s;                  if(r.charsets.source().isUTF8())
                 switch((GdomeExceptionCode)exc) {                          fcomment=fixUTF8(fcomment);
                 case GDOME_NOEXCEPTION_ERR: s="NOEXCEPTION_ERR"; break;  
                 case GDOME_INDEX_SIZE_ERR: s="INDEX_SIZE_ERR"; break;  
                 case GDOME_DOMSTRING_SIZE_ERR: s="DOMSTRING_SIZE_ERR"; break;  
                 case GDOME_HIERARCHY_REQUEST_ERR: s="HIERARCHY_REQUEST_ERR"; break;  
                 case GDOME_WRONG_DOCUMENT_ERR: s="WRONG_DOCUMENT_ERR"; break;  
                 case GDOME_INVALID_CHARACTER_ERR: s="INVALID_CHARACTER_ERR"; break;  
                 case GDOME_NO_DATA_ALLOWED_ERR: s="NO_DATA_ALLOWED_ERR"; break;  
                 case GDOME_NO_MODIFICATION_ALLOWED_ERR: s="NO_MODIFICATION_ALLOWED_ERR"; break;  
                 case GDOME_NOT_FOUND_ERR: s="NOT_FOUND_ERR"; break;  
                 case GDOME_NOT_SUPPORTED_ERR: s="NOT_SUPPORTED_ERR"; break;  
                 case GDOME_INUSE_ATTRIBUTE_ERR: s="INUSE_ATTRIBUTE_ERR"; break;  
                 case GDOME_INVALID_STATE_ERR: s="INVALID_STATE_ERR"; break;  
                 case GDOME_SYNTAX_ERR: s="SYNTAX_ERR"; break;  
                 case GDOME_INVALID_MODIFICATION_ERR: s="INVALID_MODIFICATION_ERR"; break;  
                 case GDOME_NAMESPACE_ERR: s="NAMESPACE_ERR"; break;  
                 case GDOME_INVALID_ACCESS_ERR: s="INVALID_ACCESS_ERR"; break;  
                 case GDOME_NULL_POINTER_ERR: s="NULL_POINTER_ERR"; break;  
                 default: s="<UNKNOWN CODE>"; break;  
                 }  
                   
                 fcomment=new(PointerFreeGC) char[MAX_STRING];  
                 const char* xml_error_message;  
                 const char* xml_error_prefix;  
                 if(xml_generic_errors) {  
                         xml_error_prefix="\n";  
                         xml_error_message=xml_generic_errors;  
                 } else {  
                         xml_error_prefix="";  
                         xml_error_message="";  
                 }  
                 if(exc)  
                         snprintf(fcomment, MAX_STRING,   
                                 "DOMException %s (%d)."  
                                 "%s%s",   
                                         s,  // decoded code of exception  
                                         exc, // DOM exception code  
                                         xml_error_prefix, xml_error_message // xml generic messages accumulated  
                         );  
                 else // no DOM exception  
                         snprintf(fcomment, MAX_STRING,   
                                 "%s",   
                                         xml_error_message // xml generic messages accumulated  
                         );  
         } else          } else
                 fcomment=0;                  fcomment="-UNKNOWN ERROR-";
   }
   
   XmlException::XmlException(){
           ftype="xml";
           fproblem_source=0;
   
           if(const char* xml_generic_errors=xmlGenericErrors())
                   fcomment=pa_strdup(xml_generic_errors);
           else
                   fcomment="-UNKNOWN ERROR-";
 }  }
   
 #endif  #endif

Removed from v.1.3  
changed lines
  Added in v.1.13


E-mail: