--- parser3/src/classes/xdoc.C 2001/10/26 12:21:35 1.35 +++ parser3/src/classes/xdoc.C 2001/11/05 10:42:59 1.42 @@ -4,7 +4,7 @@ Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com) Author: Alexander Petrosyan (http://design.ru/paf) - $Id: xdoc.C,v 1.35 2001/10/26 12:21:35 paf Exp $ + $Id: xdoc.C,v 1.42 2001/11/05 10:42:59 paf Exp $ */ #include "pa_types.h" #include "classes.h" @@ -511,9 +511,9 @@ static void _file(Request& r, const Stri Value *vcontent_type; if(charset) { VHash *vhcontent_type=new(pool) VHash(pool); - vhcontent_type->hash().put(*value_name, new(pool) VString(*scontent_type)); + vhcontent_type->hash(&method_name).put(*value_name, new(pool) VString(*scontent_type)); String *scharset=new(pool) String(pool, charset); - vhcontent_type->hash().put(*new(pool) String(pool, "charset"), new(pool) VString(*scharset)); + vhcontent_type->hash(&method_name).put(*new(pool) String(pool, "charset"), new(pool) VString(*scharset)); vcontent_type=vhcontent_type; } else vcontent_type=new(pool) VString(*scontent_type); @@ -611,11 +611,12 @@ static void _load(Request& r, const Stri vdoc.set_parsed_source(*parsedSource); } +/// @test lang=String::UL_UNSPECIFIED? static void add_xslt_param(const Hash::Key& aattribute, Hash::Val *ameaning, void *info) { XalanTransformer2& transformer=*static_cast(info); - const char *attribute_cstr=aattribute.cstr(); - const char *meaning_cstr=static_cast(ameaning)->as_string().cstr(); + const char *attribute_cstr=aattribute.cstr(String::UL_UNSPECIFIED); + const char *meaning_cstr=static_cast(ameaning)->as_string().cstr(String::UL_UNSPECIFIED); transformer.setStylesheetParam( XalanDOMString(attribute_cstr), @@ -649,6 +650,11 @@ static void _transform(Request& r, const // transform try { + // note: + // actually, never found any difference between the two + // but still there some extra "xerces" words at start of transform body + // wich were originally "xalan" + // not daring to change that if(vdoc.has_parsed_source()) { // set|load, not create? vdoc.transformer().transform2( vdoc.get_parsed_source(pool, &method_name), @@ -683,6 +689,9 @@ static void _transform(Request& r, const Exception::provide_source(pool, &stylesheet_file_name, e); } + // close + connection.close(); + // write out result VXdoc& result=*new(pool) VXdoc(pool, target, false/*owns not*/); r.write_no_lang(result);