File: pa_xml_exception.C

package info (click to toggle)
parser 3.4.5-4
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 7,552 kB
  • sloc: cpp: 32,375; sh: 11,487; ansic: 10,849; yacc: 1,361; makefile: 248; awk: 5
file content (54 lines) | stat: -rw-r--r-- 1,336 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/** @file
	Parser: exception class.

	Copyright (c) 2001-2017 Art. Lebedev Studio (http://www.artlebedev.com)
	Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
*/

#include "pa_config_includes.h"

#ifdef XML

#include "pa_xml_exception.h"
#include "pa_globals.h"
#include "pa_common.h"
#include "pa_charset.h"

volatile const char * IDENT_PA_XML_EXCEPTION_C="$Id: pa_xml_exception.C,v 1.11 2017/02/07 22:00:44 moko Exp $" IDENT_PA_XML_EXCEPTION_H;

// methods

XmlException::XmlException(const String* aproblem_source, const char* aproblem_comment, ...) {
	ftype="xml";
	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";
	fproblem_source=aproblem_source;

	if(const char* xml_generic_errors=xmlGenericErrors()){
		fcomment=pa_strdup(xml_generic_errors);
		if(r.charsets.source().isUTF8())
			fcomment=fixUTF8(fcomment);
	} else
		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