--- parser3/src/include/pa_string.h 2001/04/03 05:23:40 1.62 +++ parser3/src/include/pa_string.h 2001/04/03 17:01:02 1.69 @@ -5,7 +5,7 @@ Author: Alexander Petrosyan (http://design.ru/paf) - $Id: pa_string.h,v 1.62 2001/04/03 05:23:40 paf Exp $ + $Id: pa_string.h,v 1.69 2001/04/03 17:01:02 paf Exp $ */ #ifndef PA_STRING_H @@ -18,6 +18,8 @@ #include "pa_pool.h" #include "pa_types.h" +class Table; + /** $MAIN:html-typo table elements must enlarge string not more that that that's a tradeoff - otherwise we'd have to scan string twice: @@ -109,10 +111,10 @@ public: String(Pool& apool, const char *src=0, bool tainted=false); String(const String& src); size_t size() const { return fsize; } - /// convert to C string - char *cstr() const { + /// convert to C string. if 'lang' known, forcing 'lang' to it + char *cstr(Untaint_lang lang=UL_UNKNOWN) const { char *result=(char *)malloc(size()*UNTAINT_TIMES_BIGGER+1); - char *eol=store_to(result); + char *eol=store_to(result, lang); *eol=0; return result; } @@ -182,6 +184,13 @@ public: const String& delim, Untaint_lang lang, int limit=-1) const; + typedef void (*Row_action)(Table& table, Array *row, int start, int finish, + void *info); + bool match(const String *aorigin, + const String& regexp, + const String *options, + Table **table, + Row_action row_action, void *info) const; #ifndef NO_STRING_ORIGIN /// origin of string. calculated by first row @@ -233,7 +242,7 @@ private: return append_here == link_row; } void expand(); - char *String::store_to(char *dest) const; + char *String::store_to(char *dest, Untaint_lang lang=UL_UNKNOWN) const; private: //disabled