--- parser3/src/classes/xdoc.C 2003/01/31 12:34:27 1.108.2.2 +++ parser3/src/classes/xdoc.C 2003/04/11 09:58:10 1.110 @@ -1,14 +1,14 @@ /** @file Parser: @b xdoc parser class. - Copyright (c) 2001-2003 ArtLebedev Group (http://www.artlebedev.com) + Copyright (c) 2001, 2003 ArtLebedev Group (http://www.artlebedev.com) Author: Alexandr Petrosian (http://paf.design.ru) */ #include "classes.h" #ifdef XML -static const char* IDENT_XDOC_C="$Date: 2003/01/31 12:34:27 $"; +static const char* IDENT_XDOC_C="$Date: 2003/04/11 09:58:10 $"; #include "pa_stylesheet_connection.h" #include "pa_request.h" @@ -41,7 +41,7 @@ extern "C" { class MXdoc : public MXnode { public: // VStateless_class - ValuePtr create_new_value() { return ValuePtr(new VXdoc(0); } + Value *create_new_value(Pool& pool) { return new(pool) VXdoc(pool, 0); } public: MXdoc(Pool& pool); @@ -177,7 +177,7 @@ static void _createElement(Request& r, c GdomeException exc; GdomeNode *node= (GdomeNode *)gdome_doc_createElement(vdoc.get_document(&method_name), - pool.transcode(tagName).get(), + pool.transcode(tagName).use(), &exc); writeNode(r, method_name, node, exc); } @@ -205,7 +205,7 @@ static void _createTextNode(Request& r, GdomeException exc; GdomeNode *node=(GdomeNode *)gdome_doc_createTextNode( vdoc.get_document(&method_name), - pool.transcode(data).get(), + pool.transcode(data).use(), &exc); writeNode(r, method_name, node, exc); } @@ -220,7 +220,7 @@ static void _createComment(Request& r, c GdomeException exc; GdomeNode *node=(GdomeNode *)gdome_doc_createComment( vdoc.get_document(&method_name), - pool.transcode(data).get(), + pool.transcode(data).use(), &exc); writeNode(r, method_name, node, exc); } @@ -235,7 +235,7 @@ static void _createCDATASection(Request& GdomeException exc; GdomeNode *node=(GdomeNode *)gdome_doc_createCDATASection( vdoc.get_document(&method_name), - pool.transcode(data).get(), + pool.transcode(data).use(), &exc); writeNode(r, method_name, node, exc); } @@ -251,8 +251,8 @@ static void _createProcessingInstruction GdomeException exc; GdomeNode *node=(GdomeNode *)gdome_doc_createProcessingInstruction( vdoc.get_document(&method_name), - pool.transcode(target).get(), - pool.transcode(data).get(), + pool.transcode(target).use(), + pool.transcode(data).use(), &exc); writeNode(r, method_name, node, exc); } @@ -267,7 +267,7 @@ static void _createAttribute(Request& r, GdomeException exc; GdomeNode *node=(GdomeNode *)gdome_doc_createAttribute( vdoc.get_document(&method_name), - pool.transcode(name).get(), + pool.transcode(name).use(), &exc); writeNode(r, method_name, node, exc); } @@ -281,7 +281,7 @@ static void _createEntityReference(Reque GdomeException exc; GdomeNode *node=(GdomeNode *)gdome_doc_createEntityReference( vdoc.get_document(&method_name), - pool.transcode(name).get(), + pool.transcode(name).use(), &exc); writeNode(r, method_name, node, exc); } @@ -298,7 +298,7 @@ static void _getElementsByTagName(Reques if(GdomeNodeList *nodes= gdome_doc_getElementsByTagName( vdoc.get_document(&method_name), - pool.transcode(name).get(), + pool.transcode(name).use(), &exc)) { gulong length=gdome_nl_length(nodes, &exc); for(gulong i=0; iencoding=pool.get_source_charset().transcode_buf2xchar(source_charset_name, strlen(source_charset_name)); /// +xalan createXMLDecl ? } // URI - const char* URI_cstr; + const char *URI_cstr; if(params->size()>1) { // absolute(param) const String& URI=params->as_string(0, "URI must be string"); URI_cstr=r.absolute(URI).cstr(); @@ -483,14 +483,14 @@ static void _load(Request& r, const Stri :0); GdomeDocument *document=(GdomeDocument *) - gdome_xml_n_mkref((xmlNode *)xmlParseMemory((const char* )data, size)); + gdome_xml_n_mkref((xmlNode *)xmlParseMemory((const char *)data, size)); if(!document || xmlHaveGenericErrors()) { GdomeException exc=0; throw Exception( &uri, exc); } - const char* URI_cstr=uri.cstr(); + const char *URI_cstr=uri.cstr(); xmlDoc *doc=gdome_xml_doc_get_xmlDoc(document); if(URI_cstr) doc->URL=pool.transcode_buf2xchar(URI_cstr, strlen(URI_cstr)); @@ -500,14 +500,14 @@ static void _load(Request& r, const Stri } static void param_option_over_output_option(Pool& pool, - Hash *param_options, const char* option_name, + Hash *param_options, const char *option_name, const String *& output_option) { if(Value *value=static_cast(param_options->get(*new(pool) String(pool, option_name)))) output_option=&value->as_string(); } static void param_option_over_output_option(Pool& pool, - Hash *param_options, const char* option_name, + Hash *param_options, const char *option_name, bool& output_option) { if(Value *value=static_cast(param_options->get(*new(pool) String(pool, option_name)))) { @@ -596,7 +596,7 @@ static void xdoc2buf(Pool& pool, VXdoc& prepare_output_options(pool, method_name, params, index, oo); - const char* encoding_cstr=oo.encoding->cstr(); + const char *encoding_cstr=oo.encoding->cstr(); xmlCharEncodingHandler *encoder=xmlFindCharEncodingHandler(encoding_cstr); if(!encoder) throw Exception("parser.runtime", @@ -617,7 +617,7 @@ static void xdoc2buf(Pool& pool, VXdoc& "xsltNewStylesheet failed"); #define OOS2STYLE(name) \ - stylesheet->name=oo.name?BAD_CAST g_strdup(pool.transcode(*oo.name)->str):0 + stylesheet->name=oo.name?BAD_CAST xmlMemStrdup(pool.transcode(*oo.name)->str):0 #define OOE2STYLE(name) \ stylesheet->name=oo.name @@ -719,12 +719,12 @@ static void add_xslt_param(const Hash::K void *info) { Value *meaning=static_cast(ameaning); Pool& pool=meaning->pool(); - const char* * & current_transform_param=*(const char* **)info; + const char ** & current_transform_param=*(const char ***)info; *current_transform_param++=pool.transcode(aattribute)->str; *current_transform_param++=pool.transcode(meaning->as_string())->str; } static VXdoc& _transform(Pool& pool, const String *doc_source, const String *stylesheet_source, - VXdoc& vdoc, xsltStylesheetPtr stylesheet, const char* *transform_params) { + VXdoc& vdoc, xsltStylesheetPtr stylesheet, const char **transform_params) { xmlDoc *document=gdome_xml_doc_get_xmlDoc(vdoc.get_document(doc_source)); xsltTransformContext_auto_ptr transformContext( xsltNewTransformContext(stylesheet, document)); @@ -737,7 +737,7 @@ static VXdoc& _transform(Pool& pool, con stylesheet, document, 0/*already quoted-inserted transform_params*/, - 0/*const char* output*/, + 0/*const char *output*/, 0/*FILE *profile*/, transformContext.get()); if(!transformed || xmlHaveGenericErrors()) { @@ -792,13 +792,13 @@ static void _transform(Request& r, const VXdoc& vdoc=*static_cast(r.get_self()); // params - const char* *transform_params=0; + const char **transform_params=0; if(params->size()>1) { Value& vparams=params->as_no_junction(1, "transform parameters must be hash"); if(!vparams.is_string()) if(Hash *params=vparams.get_hash(&method_name)) { - const char* *current_transform_param=transform_params= - (const char* *)pool.malloc(sizeof(const char* )*(params->size()*2+1)); + const char **current_transform_param=transform_params= + (const char **)pool.malloc(sizeof(const char *)*(params->size()*2+1)); params->for_each(add_xslt_param, ¤t_transform_param); transform_params[params->size()*2]=0; } else