--- parser3/src/include/pa_common.h 2002/11/21 09:18:19 1.83 +++ parser3/src/include/pa_common.h 2003/01/21 15:51:09 1.89 @@ -1,18 +1,19 @@ /** @file Parser: commonly used functions. - 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) */ #ifndef PA_COMMON_H #define PA_COMMON_H -static const char* IDENT_COMMON_H="$Date: 2002/11/21 09:18:19 $"; +static const char* IDENT_COMMON_H="$Date: 2003/01/21 15:51:09 $"; #include "pa_pool.h" #include "pa_string.h" +class Hash; class Value; // replace system s*nprintf with our versions @@ -78,6 +79,14 @@ extern "C" double sign(double); inline double sign(double param) { return param > 0 ? 1 : ( param < 0 ? -1 : 0 ); } #endif +/** + $content-type[text/html] -> + content-type: text/html + $content-type[$value[text/html] charset[windows-1251]] -> + content-type: text/html; charset=windows-1251 +*/ +const String& attributed_meaning_to_string(Value& meaning, String::Untaint_lang lang, bool forced); + /// yields to OS for secs secs and usecs milliseconds int pa_sleep(unsigned long secs, unsigned long usecs); @@ -90,6 +99,7 @@ void fix_line_breaks( ); typedef void (*File_read_action)(Pool& pool, + struct stat& finfo, int f, const String& file_spec, const char *fname, bool as_text, void *context); @@ -113,7 +123,8 @@ bool file_read_action_under_lock(Pool& p */ char *file_read_text(Pool& pool, const String& file_spec, - bool fail_on_read_problem=true); + bool fail_on_read_problem=true, + Hash *options=0, Hash** out_fields=0); /** read specified file using pool, @@ -124,6 +135,7 @@ char *file_read_text(Pool& pool, bool file_read(Pool& pool, const String& file_spec, void*& data, size_t& size, bool as_text, + Hash *options=0, Hash** out_fields=0, bool fail_on_read_problem=true); typedef void (*File_write_action)(int f, void *context);