--- parser3/src/include/pa_charset.h 2011/02/21 22:59:18 1.46.2.1 +++ parser3/src/include/pa_charset.h 2024/12/11 21:57:35 1.60 @@ -1,14 +1,14 @@ /** @file Parser: Charset connection decl. - Copyright (c) 2001-2009 ArtLebedev Group (http://www.artlebedev.com) - Author: Alexandr Petrosian (http://paf.design.ru) + Copyright (c) 2001-2024 Art. Lebedev Studio (http://www.artlebedev.com) + Authors: Konstantin Morshnev , Alexandr Petrosian */ #ifndef PA_CHARSET_H #define PA_CHARSET_H -static const char * const IDENT_CHARSET_H="$Date: 2011/02/21 22:59:18 $"; +#define IDENT_PA_CHARSET_H "$Id: pa_charset.h,v 1.60 2024/12/11 21:57:35 moko Exp $" #include "pa_exception.h" @@ -16,13 +16,16 @@ static const char * const IDENT_CHARSET_ #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" +#ifdef HAVE_PCRE2 +#include +#else +#include +#endif +// we are using some pcre_internal.h stuff as well +#include "../lib/pcre/pa_pcre_internal.h" #ifdef XML +#include "libxml/xmlstring.h" #include "libxml/encoding.h" #endif @@ -56,39 +59,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 +177,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: