--- parser3/src/include/pa_charset.h 2003/06/27 08:36:59 1.20.2.18.2.13 +++ parser3/src/include/pa_charset.h 2008/07/16 17:07:11 1.37 @@ -1,14 +1,14 @@ /** @file Parser: Charset connection decl. - Copyright (c) 2001-2003 ArtLebedev Group (http://www.artlebedev.com) + Copyright (c) 2001-2005 ArtLebedev Group (http://www.artlebedev.com) Author: Alexandr Petrosian (http://paf.design.ru) */ #ifndef PA_CHARSET_H #define PA_CHARSET_H -static const char* IDENT_CHARSET_H="$Date: 2003/06/27 08:36:59 $"; +static const char * const IDENT_CHARSET_H="$Date: 2008/07/16 17:07:11 $"; #include "pa_exception.h" @@ -39,18 +39,9 @@ namespace PCRE { typedef unsigned char XMLByte; # endif -// forwards - -class GdomeDOMString_auto_ptr; - // helpers -struct Charset_TransRec { - XMLCh intCh; - XMLByte extCh; -}; - -typedef Hash HashStringString; +typedef Hash HashStringString; /** charset holds name & transcode tables registers libxml transcoders @@ -58,22 +49,23 @@ typedef Hash() { - return fstring; - } -/* GdomeDOMString& operator*() { - return* fstring; - }*/ - - // copying - GdomeDOMString_auto_ptr(const GdomeDOMString_auto_ptr& src) : fstring(src.fstring) { - gdome_str_ref(fstring); - } - GdomeDOMString_auto_ptr& operator =(const GdomeDOMString_auto_ptr& src) { - if(this == &src) - return* this; - - if(fstring) - gdome_str_unref(fstring); - fstring=src.fstring; - if(fstring) - gdome_str_ref(fstring); - return* this; - } -}; -#endif +// externs + +extern Charset::UTF8CaseTable UTF8CaseToUpper; +extern Charset::UTF8CaseTable UTF8CaseToLower; +void change_case_UTF8(const XMLByte* srcData, size_t srcLen, + XMLByte* toFill, size_t toFillLen, + const Charset::UTF8CaseTable& table); +size_t getUTF8BytePos(const XMLByte* srcBegin, const XMLByte* srcEnd, size_t charPos/*position in characters*/); +size_t getUTF8CharPos(const XMLByte* srcBegin, const XMLByte* srcEnd, size_t bytePos/*position in bytes*/); +size_t lengthUTF8(const XMLByte* srcBegin, const XMLByte* srcEnd); #endif