--- parser3/src/classes/xdoc.C 2002/11/25 14:10:52 1.105 +++ parser3/src/classes/xdoc.C 2003/01/28 15:42:40 1.108.2.1 @@ -1,14 +1,14 @@ /** @file Parser: @b xdoc parser class. - Copyright (c) 2001, 2002 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: 2002/11/25 14:10:52 $"; +static const char* IDENT_XDOC_C="$Date: 2003/01/28 15:42:40 $"; #include "pa_stylesheet_connection.h" #include "pa_request.h" @@ -41,7 +41,7 @@ extern "C" { class MXdoc : public MXnode { public: // VStateless_class - Value *create_new_value(Pool& pool) { return new(pool) VXdoc(pool, 0); } + ValuePtr create_new_value() { return ValuePtr(new VXdoc(0); } public: MXdoc(Pool& pool); @@ -490,6 +490,10 @@ static void _load(Request& r, const Stri &uri, exc); } + 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)); // replace any previous parsed source vdoc.set_document(document); @@ -791,7 +795,7 @@ static void _transform(Request& r, const const char **transform_params=0; if(params->size()>1) { Value& vparams=params->as_no_junction(1, "transform parameters must be hash"); - if(vparams.is_defined()) + 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));