--- parser3/src/main/pa_globals.C 2001/11/16 12:38:43 1.91 +++ parser3/src/main/pa_globals.C 2001/12/15 21:28:21 1.95 @@ -4,7 +4,7 @@ Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com) Author: Alexander Petrosyan (http://paf.design.ru) - $Id: pa_globals.C,v 1.91 2001/11/16 12:38:43 paf Exp $ + $Id: pa_globals.C,v 1.95 2001/12/15 21:28:21 paf Exp $ */ #include "pa_globals.h" @@ -13,9 +13,10 @@ #include "pa_sql_driver_manager.h" #include "pa_dictionary.h" #include "pa_stylesheet_manager.h" -#include "pa_charset_manager.h" #include "pa_sapi.h" #include "pa_cache_managers.h" +#include "pa_charsets.h" +#include "pa_charset.h" #ifdef DB2 #include "pa_db_manager.h" @@ -50,7 +51,6 @@ String *string_pre_match_name; String *string_match_name; String *string_post_match_name; -String *defaults_name; String *charsets_name; String *mime_types_name; String *vfile_mime_type_name; @@ -65,11 +65,13 @@ String *sql_limit_name; String *sql_offset_name; String *sql_default_name; +String *charset_UTF8_name; + String *hash_default_element_name; Hash *untaint_lang_name2enum; -Dictionary *default_typo_dict; +Charset *utf8_charset; short hex_value[0x100]; @@ -101,26 +103,11 @@ static void setup_hex_value() { void pa_globals_destroy(void *) { try { - // SQL driver manager - if(SQL_driver_manager) - SQL_driver_manager->~SQL_Driver_manager(); - -#ifdef DB2 - // DB driver manager - if(DB_manager) - DB_manager->~DB_Manager(); -#endif - -#ifdef XML - // XSLT stylesheet driver manager - if(stylesheet_manager) - stylesheet_manager->~Stylesheet_manager(); -#endif - - // Charset manager - if(charset_manager) - charset_manager->~Charset_manager(); + if(cache_managers) + cache_managers->~Cache_managers(); + charsets->~Charsets(); + } catch(const Exception& e) { SAPI::die("pa_globals_destroy failed: %s", e.comment()); } @@ -167,7 +154,6 @@ void pa_globals_init(Pool& pool) { string_post_match_name=NEW String(pool, STRING_POST_MATCH_NAME); - defaults_name=NEW String(pool, DEFAULTS_NAME); charsets_name=NEW String(pool, CHARSETS_NAME); mime_types_name=NEW String(pool, MIME_TYPES_NAME); vfile_mime_type_name=NEW String(pool, VFILE_MIME_TYPE_NAME); @@ -184,6 +170,9 @@ void pa_globals_init(Pool& pool) { sql_offset_name=NEW String(pool, SQL_OFFSET_NAME); sql_default_name=NEW String(pool, SQL_DEFAULT_NAME); + // charsets + charset_UTF8_name=NEW String(pool, CHARSET_UTF8_NAME); + // hash hash_default_element_name=NEW String(pool, HASH_DEFAULT_ELEMENT_NAME); @@ -202,23 +191,12 @@ void pa_globals_init(Pool& pool) { ULN("js", JS); ULN("xml", XML); ULN("html", HTML); - ULN("optimized-html", OPTIMIZED_HTML); + ULN("optimized-html", HTML|String::UL_OPTIMIZE_BIT); - // tables - Table *default_typo_table=NEW Table(pool, 0, 0); - #define DT_ROW(from, to) { \ - Array *row=NEW Array(pool); \ - *row+=NEW String(pool, from); \ - *row+=NEW String(pool, to); \ - *default_typo_table+=row; \ - } - DT_ROW("<", "<"); - DT_ROW(">", ">"); - DT_ROW("\"", """); - DT_ROW("&", "&"); - DT_ROW("\\n\\n", "

"); - DT_ROW("\\n", "
"); - default_typo_dict=NEW Dictionary(*default_typo_table); + // charsets + charsets=NEW Charsets(pool); + charsets->put(*charset_UTF8_name, + utf8_charset=NEW Charset(pool, *charset_UTF8_name, 0/*no file=system*/)); // Status registration, must be initialized before all registrants cache_managers=NEW Cache_managers(pool); @@ -238,10 +216,6 @@ void pa_globals_init(Pool& pool) { cache_managers->put(*NEW String(pool, "stylesheet"), stylesheet_manager=NEW Stylesheet_manager(pool)); #endif - - // Charset manager - cache_managers->put(*NEW String(pool, "charset"), - charset_manager=NEW Charset_manager(pool)); } #if defined(XML) && defined(_MSC_VER)