--- parser3/src/include/pa_charset.h 2012/03/16 09:24:08 1.48 +++ parser3/src/include/pa_charset.h 2017/02/07 22:00:31 1.55 @@ -1,14 +1,14 @@ /** @file Parser: Charset connection decl. - Copyright (c) 2001-2012 Art. Lebedev Studio (http://www.artlebedev.com) + Copyright (c) 2001-2017 Art. Lebedev Studio (http://www.artlebedev.com) Author: Alexandr Petrosian (http://paf.design.ru) */ #ifndef PA_CHARSET_H #define PA_CHARSET_H -#define IDENT_PA_CHARSET_H "$Id: pa_charset.h,v 1.48 2012/03/16 09:24:08 moko Exp $" +#define IDENT_PA_CHARSET_H "$Id: pa_charset.h,v 1.55 2017/02/07 22:00:31 moko Exp $" #include "pa_exception.h" @@ -16,11 +16,9 @@ #include "pa_hash.h" #include "pa_array.h" -// pcre.h must be included BEFORE pcre_internal.h #include "pcre.h" -// have to call config.h for using pcre_internal.h as well -#include "../lib/pcre/config.h" -#include "pcre_internal.h" +// we are using some pcre_internal.h stuff as well +#include "../lib/pcre/pa_pcre_internal.h" #ifdef XML #include "libxml/encoding.h" @@ -56,39 +54,19 @@ public: bool isUTF8() const { return fisUTF8; } - static String::C transcode(const String::C src, - const Charset& source_charset, - const Charset& dest_charset); - - static String& transcode(const String& src, - const Charset& source_transcoder, - const Charset& dest_transcoder); - - static String::Body transcode(const String::Body src, - const Charset& source_transcoder, - const Charset& dest_transcoder); - - static void transcode(ArrayString& src, - const Charset& source_transcoder, - const Charset& dest_transcoder); - - static void transcode(HashStringString& src, - const Charset& source_transcoder, - const Charset& dest_transcoder); - - static String::C escape(const String::C src, - const Charset& source_charset); - static String::Body escape(const String::Body src, - const Charset& source_charset); - static String& escape(const String& src, - const Charset& source_charset); - - static String::C escape_JSON(const String::C src, - const Charset& source_charset); - static String::Body escape_JSON(const String::Body src, - const Charset& source_charset); - static String& escape_JSON(const String& src, - const Charset& source_charset); + static String::C transcode(const String::C src, const Charset& source_charset, const Charset& dest_charset); + static String::Body transcode(const String::Body src, const Charset& source_transcoder, const Charset& dest_transcoder); + static String& transcode(const String& src, const Charset& source_transcoder, const Charset& dest_transcoder); + static void transcode(ArrayString& src, const Charset& source_transcoder, const Charset& dest_transcoder); + static void transcode(HashStringString& src, const Charset& source_transcoder, const Charset& dest_transcoder); + + static String::C escape(const String::C src, const Charset& source_charset); + static String::Body escape(const String::Body src, const Charset& source_charset); + static String& escape(const String& src, const Charset& source_charset); + + static String::C escape_JSON(const String::C src, const Charset& source_charset); + static String::Body escape_JSON(const String::Body src, const Charset& source_charset); + static String& escape_JSON(const String& src, const Charset& source_charset); void store_Char(XMLByte*& outPtr, XMLCh src, XMLByte not_found); @@ -194,6 +172,7 @@ size_t getUTF8CharPos(const XMLByte* src size_t lengthUTF8(const XMLByte* srcBegin, const XMLByte* srcEnd); unsigned int lengthUTF8Char(const XMLByte c); +const char *fixUTF8(const char *src); class UTF8_string_iterator { public: