From 1874288c2a374f89ee53376a0bc014b08b469ae9 Mon Sep 17 00:00:00 2001 From: "HuYingzhuo(hugo/hyzboy)" Date: Mon, 13 Jun 2022 18:15:31 +0800 Subject: [PATCH] used uint16 instead of CharCodePage at CodePage.h/Endian.h --- inc/hgl/CodePage.h | 161 ++++++++++++++++++++++-------------------- inc/hgl/Endian.h | 15 ++-- inc/hgl/TypeFunc.h | 12 ++-- src/Text/CodePage.cpp | 6 +- 4 files changed, 104 insertions(+), 90 deletions(-) diff --git a/inc/hgl/CodePage.h b/inc/hgl/CodePage.h index e8fb81f..da99f1d 100644 --- a/inc/hgl/CodePage.h +++ b/inc/hgl/CodePage.h @@ -7,52 +7,58 @@ namespace hgl { struct CodePageAndCharSet { - CharCodePage codepage; + uint16 codepage; CharSetName charset; }; - + + #define HGL_CODE_PAGE_AND_CHAR_SET(codepage,charset) {uint16(CharCodePage::codepage),charset} + constexpr struct CodePageAndCharSet CodePage2CharSet[]= { - {CharCodePage::NONE, "us-ascii" }, - {CharCodePage::GBK, "gbk" }, - {CharCodePage::Big5, "big5" }, - {CharCodePage::GB2312, "gb2312" }, - {CharCodePage::GB18030, "gb18030" }, + HGL_CODE_PAGE_AND_CHAR_SET(NONE, "us-ascii" ), - {CharCodePage::ShiftJIS, "shift-jis" }, - {CharCodePage::JISX, "iso-2022-jp" }, + HGL_CODE_PAGE_AND_CHAR_SET(GBK, "gbk" ), + HGL_CODE_PAGE_AND_CHAR_SET(Big5, "big5" ), + HGL_CODE_PAGE_AND_CHAR_SET(GB2312, "gb2312" ), + HGL_CODE_PAGE_AND_CHAR_SET(GB18030, "gb18030" ), + + HGL_CODE_PAGE_AND_CHAR_SET(ShiftJIS, "shift-jis" ), + HGL_CODE_PAGE_AND_CHAR_SET(EUC_JP, "EUC-JP" ), + HGL_CODE_PAGE_AND_CHAR_SET(ISO2022JP, "iso-2022-jp" ), + HGL_CODE_PAGE_AND_CHAR_SET(csISO2022JP, "csISO2022JP" ), + HGL_CODE_PAGE_AND_CHAR_SET(JISX, "iso-2022-jp" ), - {CharCodePage::Korean, "ks_c_5601-1987"}, + HGL_CODE_PAGE_AND_CHAR_SET(Korean, "ks_c_5601-1987"), - {CharCodePage::MacJanpan, "x-mac-japanese" }, - {CharCodePage::MacTraditionalChinese, "x-mac-chinesetrad" }, - {CharCodePage::MacSimplifiedChinese, "x-mac-chinesesimp" }, + HGL_CODE_PAGE_AND_CHAR_SET(MacJanpan, "x-mac-japanese" ), + HGL_CODE_PAGE_AND_CHAR_SET(MacTraditionalChinese, "x-mac-chinesetrad" ), + HGL_CODE_PAGE_AND_CHAR_SET(MacSimplifiedChinese, "x-mac-chinesesimp" ), - {CharCodePage::ISO_8859_1, "iso-8859-1"}, - {CharCodePage::ISO_8859_2, "iso-8859-2"}, - {CharCodePage::ISO_8859_3, "iso-8859-3"}, - {CharCodePage::ISO_8859_4, "iso-8859-4"}, - {CharCodePage::ISO_8859_5, "iso-8859-5"}, - {CharCodePage::ISO_8859_6, "iso-8859-6"}, - {CharCodePage::ISO_8859_7, "iso-8859-7"}, - {CharCodePage::ISO_8859_8, "iso-8859-8"}, - {CharCodePage::ISO_8859_9, "iso-8859-9"}, - {CharCodePage::ISO_8859_13, "iso-8859-13"}, - {CharCodePage::ISO_8859_15, "iso-8859-15"}, + HGL_CODE_PAGE_AND_CHAR_SET(ISO_8859_1, "iso-8859-1"), + HGL_CODE_PAGE_AND_CHAR_SET(ISO_8859_2, "iso-8859-2"), + HGL_CODE_PAGE_AND_CHAR_SET(ISO_8859_3, "iso-8859-3"), + HGL_CODE_PAGE_AND_CHAR_SET(ISO_8859_4, "iso-8859-4"), + HGL_CODE_PAGE_AND_CHAR_SET(ISO_8859_5, "iso-8859-5"), + HGL_CODE_PAGE_AND_CHAR_SET(ISO_8859_6, "iso-8859-6"), + HGL_CODE_PAGE_AND_CHAR_SET(ISO_8859_7, "iso-8859-7"), + HGL_CODE_PAGE_AND_CHAR_SET(ISO_8859_8, "iso-8859-8"), + HGL_CODE_PAGE_AND_CHAR_SET(ISO_8859_9, "iso-8859-9"), + HGL_CODE_PAGE_AND_CHAR_SET(ISO_8859_13, "iso-8859-13"), + HGL_CODE_PAGE_AND_CHAR_SET(ISO_8859_15, "iso-8859-15"), - {CharCodePage::UTF7, "utf-7" }, - {CharCodePage::UTF8, "utf-8" }, + HGL_CODE_PAGE_AND_CHAR_SET(UTF7, "utf-7" ), + HGL_CODE_PAGE_AND_CHAR_SET(UTF8, "utf-8" ), - {CharCodePage::UTF16LE, "utf-16le" }, - {CharCodePage::UTF16BE, "utf-16be" }, - {CharCodePage::UTF32LE, "utf-32le" }, - {CharCodePage::UTF32BE, "utf-32be" }, + HGL_CODE_PAGE_AND_CHAR_SET(UTF16LE, "utf-16le" ), + HGL_CODE_PAGE_AND_CHAR_SET(UTF16BE, "utf-16be" ), + HGL_CODE_PAGE_AND_CHAR_SET(UTF32LE, "utf-32le" ), + HGL_CODE_PAGE_AND_CHAR_SET(UTF32BE, "utf-32be" ), };//const struct constexpr int CharSetCount=sizeof(CodePage2CharSet)/sizeof(CodePageAndCharSet); - inline const char *FindCharSet(CharCodePage ccp) + inline const char *FindCharSet(uint16 ccp) { for(int i=0;i namespace hgl { - #define HGL_OFFICAL_WEB "www.hyzgame.com" - #define HGL_OFFICAL_WEB_U8 u8"www.hyzgame.com" - #define HGL_OFFICAL_WEB_URL "http://www.hyzgame.com" - #define HGL_OFFICAL_WEB_URL_u8 u8"http://www.hyzgame.com" + #define HGL_OFFICAL_WEB "www.hyzgame.com" + #define HGL_OFFICAL_WEB_U8 U8_TEXT("www.hyzgame.com") + #define HGL_OFFICAL_WEB_OS OS_TEXT("www.hyzgame.com") + #define HGL_OFFICAL_WEB_URL "http://www.hyzgame.com" + #define HGL_OFFICAL_WEB_URL_u8 U8_TEXT("http://www.hyzgame.com") + #define HGL_OFFICAL_WEB_URL_OS OS_TEXT("http://www.hyzgame.com") #define HGL_COPYRIGHT_STRING "(C)Copyright 2022 www.hyzgame.com" - #define HGL_COPYRIGHT_STRING_U8 u8"(C)Copyright 2022 www.hyzgame.com" + #define HGL_COPYRIGHT_STRING_U8 U8_TEXT("(C)Copyright 2022 www.hyzgame.com") #define HGL_COPYRIGHT_STRING_OS OS_TEXT("(C)Copyright 2022 www.hyzgame.com") #define ENUM_CLASS_RANGE(begin,end) BEGIN_RANGE=begin,END_RANGE=end,RANGE_SIZE=(END_RANGE-BEGIN_RANGE)+1 diff --git a/src/Text/CodePage.cpp b/src/Text/CodePage.cpp index a2b1003..540e522 100644 --- a/src/Text/CodePage.cpp +++ b/src/Text/CodePage.cpp @@ -4,9 +4,9 @@ namespace hgl { CharSet DefaultCharSet(); - CharSet UTF8CharSet (CharCodePage::UTF8, utf8_charset ); - CharSet UTF16LECharSet (CharCodePage::UTF16LE,utf16le_charset ); - CharSet UTF16BECharSet (CharCodePage::UTF16BE,utf16be_charset ); + CharSet UTF8CharSet ((uint16)CharCodePage::UTF8, utf8_charset ); + CharSet UTF16LECharSet ((uint16)CharCodePage::UTF16LE,utf16le_charset ); + CharSet UTF16BECharSet ((uint16)CharCodePage::UTF16BE,utf16be_charset ); int u16_to_u8(u8char *dst,int dst_size,const u16char *src,const int src_size) {