From 8472dba4966236dd1c13b7c62368bca7862ed147 Mon Sep 17 00:00:00 2001 From: kobake Date: Wed, 18 Jul 2018 12:50:29 +0900 Subject: [PATCH] =?UTF-8?q?extmodule=20=E9=85=8D=E4=B8=8B=E3=81=AE?= =?UTF-8?q?=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E3=82=92=20UTF-8=20(BOM?= =?UTF-8?q?=E4=BB=98)=20=E3=81=AB=E5=A4=89=E6=8F=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit cd sakura_core/extmodule nkf --overwrite --oc=UTF-8-BOM *.cpp nkf --overwrite --oc=UTF-8-BOM *.h --- sakura_core/extmodule/CBregexp.cpp | 382 ++++++++++++------------- sakura_core/extmodule/CBregexp.h | 162 +++++------ sakura_core/extmodule/CBregexpDll2.cpp | 22 +- sakura_core/extmodule/CBregexpDll2.h | 18 +- sakura_core/extmodule/CDllHandler.cpp | 72 ++--- sakura_core/extmodule/CDllHandler.h | 138 ++++----- sakura_core/extmodule/CHtmlHelp.cpp | 8 +- sakura_core/extmodule/CHtmlHelp.h | 12 +- sakura_core/extmodule/CMigemo.cpp | 40 +-- sakura_core/extmodule/CMigemo.h | 18 +- sakura_core/extmodule/CUxTheme.cpp | 16 +- sakura_core/extmodule/CUxTheme.h | 10 +- 12 files changed, 449 insertions(+), 449 deletions(-) diff --git a/sakura_core/extmodule/CBregexp.cpp b/sakura_core/extmodule/CBregexp.cpp index bf9aea97b8..44dc55cce1 100644 --- a/sakura_core/extmodule/CBregexp.cpp +++ b/sakura_core/extmodule/CBregexp.cpp @@ -1,21 +1,21 @@ -/*! @file +/*! @file @brief BREGEXP Library Handler - Perl5ŒÝŠ·³‹K•\Œ»‚ðˆµ‚¤DLL‚Å‚ ‚éBREGEXP.DLL‚ð—˜—p‚·‚邽‚߂̃Cƒ“ƒ^[ƒtƒF[ƒX + Perl5互æ›æ­£è¦è¡¨ç¾ã‚’扱ã†DLLã§ã‚ã‚‹BREGEXP.DLLを利用ã™ã‚‹ãŸã‚ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹ @author genta @date Jun. 10, 2001 - @date 2002/2/1 hor ReleaseCompileBuffer‚ð“K‹X’ljÁ - @date Jul. 25, 2002 genta s“ªðŒ‚ðl—¶‚µ‚½ŒŸõ‚ðs‚¤‚悤‚ÉD(’uŠ·‚Í‚Ü‚¾) - @date 2003.05.22 ‚©‚ë‚Æ ³‹K‚ȳ‹K•\Œ»‚ɋ߂¯‚é - @date 2005.03.19 ‚©‚ë‚Æ ƒŠƒtƒ@ƒNƒ^ƒŠƒ“ƒOBƒNƒ‰ƒX“à•”‚ð‰B•ÁB + @date 2002/2/1 hor ReleaseCompileBufferã‚’é©å®œè¿½åŠ  + @date Jul. 25, 2002 genta 行頭æ¡ä»¶ã‚’考慮ã—ãŸæ¤œç´¢ã‚’è¡Œã†ã‚ˆã†ã«ï¼Ž(ç½®æ›ã¯ã¾ã ) + @date 2003.05.22 ã‹ã‚㨠正è¦ãªæ­£è¦è¡¨ç¾ã«è¿‘ã¥ã‘ã‚‹ + @date 2005.03.19 ã‹ã‚㨠リファクタリング。クラス内部を隠蔽。 */ /* Copyright (C) 2001-2002, genta Copyright (C) 2002, novice, hor, Azumaiya - Copyright (C) 2003, ‚©‚ë‚Æ - Copyright (C) 2005, ‚©‚ë‚Æ - Copyright (C) 2006, ‚©‚ë‚Æ + Copyright (C) 2003, ã‹ã‚㨠+ Copyright (C) 2005, ã‹ã‚㨠+ Copyright (C) 2006, ã‹ã‚㨠Copyright (C) 2007, ryoji This software is provided 'as-is', without any express or implied @@ -49,7 +49,7 @@ #include "env/DLLSHAREDATA.h" -// CompileŽžAs“ª’uŠ·(len=0)‚ÌŽž‚Ƀ_ƒ~[•¶Žš—ñ(‚P‚‚ɓˆê) by ‚©‚ë‚Æ +// Compile時ã€è¡Œé ­ç½®æ›(len=0)ã®æ™‚ã«ãƒ€ãƒŸãƒ¼æ–‡å­—列(1ã¤ã«çµ±ä¸€) by ã‹ã‚㨠const wchar_t CBregexp::m_tmpBuf[2] = L"\0"; @@ -65,58 +65,58 @@ CBregexp::CBregexp() CBregexp::~CBregexp() { - //ƒRƒ“ƒpƒCƒ‹ƒoƒbƒtƒ@‚ð‰ð•ú + //コンパイルãƒãƒƒãƒ•ã‚¡ã‚’解放 ReleaseCompileBuffer(); } -/*! @brief ŒŸõƒpƒ^[ƒ“‚ª“Á’è‚ÌŒŸõƒpƒ^[ƒ“‚©ƒ`ƒFƒbƒN‚·‚é +/*! @brief 検索パターンãŒç‰¹å®šã®æ¤œç´¢ãƒ‘ターンã‹ãƒã‚§ãƒƒã‚¯ã™ã‚‹ ** -** @param[in] szPattern ŒŸõƒpƒ^[ƒ“ +** @param[in] szPattern 検索パターン ** -** @retval ŒŸõƒpƒ^[ƒ“•¶Žš—ñ’· +** @retval 検索パターン文字列長 ** -** @date 2005.03.20 ‚©‚ë‚Æ ŠÖ”‚ÉØ‚èo‚µ +** @date 2005.03.20 ã‹ã‚㨠関数ã«åˆ‡ã‚Šå‡ºã— */ int CBregexp::CheckPattern(const wchar_t* szPattern) { - static const wchar_t TOP_MATCH[] = L"/^\\(*\\^/k"; //!< s“ªƒpƒ^[ƒ“‚̃`ƒFƒbƒN—pƒpƒ^[ƒ“ - static const wchar_t DOL_MATCH[] = L"/\\\\\\$$/k"; //!< \$(s––ƒpƒ^[ƒ“‚Å‚È‚¢)ƒ`ƒFƒbƒN—pƒpƒ^[ƒ“ - static const wchar_t BOT_MATCH[] = L"/\\$\\)*$/k"; //!< s––ƒpƒ^[ƒ“‚̃`ƒFƒbƒN—pƒpƒ^[ƒ“ - static const wchar_t TAB_MATCH[] = L"/^\\(*\\^\\$\\)*$/k"; //!< "^$"ƒpƒ^[ƒ“‚©‚ðƒ`ƒFƒbƒN—pƒpƒ^[ƒ“ - static const wchar_t LOOKAHEAD[] = L"/\\(\\?[=]/k"; //!< "(?=" æ“Ç‚Ý ‚Ì‘¶Ýƒ`ƒFƒbƒNƒpƒ^[ƒ“ - BREGEXP_W* sReg = NULL; //!< ƒRƒ“ƒpƒCƒ‹\‘¢‘Ì - wchar_t szMsg[80] = L""; //!< ƒGƒ‰[ƒƒbƒZ[ƒW - int nLen; //!< ŒŸõƒpƒ^[ƒ“‚Ì’·‚³ - const wchar_t *szPatternEnd; //!< ŒŸõƒpƒ^[ƒ“‚ÌI’[ - - m_ePatType = PAT_NORMAL; //!<@ƒm[ƒ}ƒ‹‚ÍŠm’è + static const wchar_t TOP_MATCH[] = L"/^\\(*\\^/k"; //!< 行頭パターンã®ãƒã‚§ãƒƒã‚¯ç”¨ãƒ‘ターン + static const wchar_t DOL_MATCH[] = L"/\\\\\\$$/k"; //!< \$(行末パターンã§ãªã„)ãƒã‚§ãƒƒã‚¯ç”¨ãƒ‘ターン + static const wchar_t BOT_MATCH[] = L"/\\$\\)*$/k"; //!< 行末パターンã®ãƒã‚§ãƒƒã‚¯ç”¨ãƒ‘ターン + static const wchar_t TAB_MATCH[] = L"/^\\(*\\^\\$\\)*$/k"; //!< "^$"パターンã‹ã‚’ãƒã‚§ãƒƒã‚¯ç”¨ãƒ‘ターン + static const wchar_t LOOKAHEAD[] = L"/\\(\\?[=]/k"; //!< "(?=" 先読㿠ã®å­˜åœ¨ãƒã‚§ãƒƒã‚¯ãƒ‘ターン + BREGEXP_W* sReg = NULL; //!< コンパイル構造体 + wchar_t szMsg[80] = L""; //!< エラーメッセージ + int nLen; //!< 検索パターンã®é•·ã• + const wchar_t *szPatternEnd; //!< 検索パターンã®çµ‚端 + + m_ePatType = PAT_NORMAL; //!< ノーマルã¯ç¢ºå®š nLen = wcslen( szPattern ); szPatternEnd = szPattern + nLen; - // ƒpƒ^[ƒ“Ží•Ê‚ÌÝ’è + // パターン種別ã®è¨­å®š if( BMatch( TOP_MATCH, szPattern, szPatternEnd, &sReg, szMsg ) > 0 ) { - // s“ªƒpƒ^[ƒ“‚Ƀ}ƒbƒ`‚µ‚½ + // 行頭パターンã«ãƒžãƒƒãƒã—㟠m_ePatType |= PAT_TOP; } BRegfree(sReg); sReg = NULL; if( BMatch( TAB_MATCH, szPattern, szPatternEnd, &sReg, szMsg ) > 0 ) { - // s“ªs––ƒpƒ^[ƒ“‚Ƀ}ƒbƒ`‚µ‚½ + // 行頭行末パターンã«ãƒžãƒƒãƒã—㟠m_ePatType |= PAT_TAB; } BRegfree(sReg); sReg = NULL; if( BMatch( DOL_MATCH, szPattern, szPatternEnd, &sReg, szMsg ) > 0 ) { - // s––‚Ì\$ ‚Ƀ}ƒbƒ`‚µ‚½ + // 行末ã®\$ ã«ãƒžãƒƒãƒã—㟠// PAT_NORMAL } else { BRegfree(sReg); sReg = NULL; if( BMatch( BOT_MATCH, szPattern, szPatternEnd, &sReg, szMsg ) > 0 ) { - // s––ƒpƒ^[ƒ“‚Ƀ}ƒbƒ`‚µ‚½ + // 行末パターンã«ãƒžãƒƒãƒã—㟠m_ePatType |= PAT_BOTTOM; } else { - // ‚»‚Ì‘¼ + // ãã®ä»– // PAT_NORMAL } } @@ -124,7 +124,7 @@ int CBregexp::CheckPattern(const wchar_t* szPattern) sReg = NULL; if( BMatch( LOOKAHEAD, szPattern, szPattern + nLen, &sReg, szMsg ) > 0 ) { - // æ“ǂ݃pƒ^[ƒ“‚Ƀ}ƒbƒ`‚µ‚½ + // 先読ã¿ãƒ‘ターンã«ãƒžãƒƒãƒã—㟠m_ePatType |= PAT_LOOKAHEAD; } BRegfree(sReg); @@ -132,39 +132,39 @@ int CBregexp::CheckPattern(const wchar_t* szPattern) return (nLen); } -/*! @brief ƒ‰ƒCƒuƒ‰ƒŠ‚É“n‚·‚½‚ß‚ÌŒŸõE’uŠ·ƒpƒ^[ƒ“‚ð쬂·‚é +/*! @brief ライブラリã«æ¸¡ã™ãŸã‚ã®æ¤œç´¢ãƒ»ç½®æ›ãƒ‘ターンを作æˆã™ã‚‹ ** -** @note szPattern2: == NULL:ŒŸõ != NULL:’uŠ· +** @note szPattern2: == NULL:検索 != NULL:ç½®æ› ** -** @retval ƒ‰ƒCƒuƒ‰ƒŠ‚É“n‚·ŒŸõƒpƒ^[ƒ“‚ւ̃|ƒCƒ“ƒ^‚ð•Ô‚· -** @note •Ô‚·ƒ|ƒCƒ“ƒ^‚ÍAŒÄ‚Ño‚µ‘¤‚Å delete ‚·‚邱‚Æ +** @retval ライブラリã«æ¸¡ã™æ¤œç´¢ãƒ‘ターンã¸ã®ãƒã‚¤ãƒ³ã‚¿ã‚’返㙠+** @note è¿”ã™ãƒã‚¤ãƒ³ã‚¿ã¯ã€å‘¼ã³å‡ºã—å´ã§ delete ã™ã‚‹ã“㨠** -** @date 2003.05.03 ‚©‚ë‚Æ ŠÖ”‚ÉØ‚èo‚µ +** @date 2003.05.03 ã‹ã‚㨠関数ã«åˆ‡ã‚Šå‡ºã— */ wchar_t* CBregexp::MakePatternSub( - const wchar_t* szPattern, //!< ŒŸõƒpƒ^[ƒ“ - const wchar_t* szPattern2, //!< ’uŠ·ƒpƒ^[ƒ“(NULL‚Ȃ猟õ) - const wchar_t* szAdd2, //!< ’uŠ·ƒpƒ^[ƒ“‚ÌŒã‚ë‚É•t‚¯‰Á‚¦‚éƒpƒ^[ƒ“($1‚È‚Ç) - int nOption //!< ŒŸõƒIƒvƒVƒ‡ƒ“ + const wchar_t* szPattern, //!< 検索パターン + const wchar_t* szPattern2, //!< ç½®æ›ãƒ‘ターン(NULLãªã‚‰æ¤œç´¢) + const wchar_t* szAdd2, //!< ç½®æ›ãƒ‘ターンã®å¾Œã‚ã«ä»˜ã‘加ãˆã‚‹ãƒ‘ターン($1ãªã©) + int nOption //!< 検索オプション ) { - static const wchar_t DELIMITER = WCODE::BREGEXP_DELIMITER; //!< ƒfƒŠƒ~ƒ^ - int nLen; //!< szPattern‚Ì’·‚³ - int nLen2; //!< szPattern2 + szAdd2 ‚Ì’·‚³ + static const wchar_t DELIMITER = WCODE::BREGEXP_DELIMITER; //!< デリミタ + int nLen; //!< szPatternã®é•·ã• + int nLen2; //!< szPattern2 + szAdd2 ã®é•·ã• - // ŒŸõƒpƒ^[ƒ“ì¬ - wchar_t *szNPattern; //!< ƒ‰ƒCƒuƒ‰ƒŠ“n‚µ—p‚ÌŒŸõƒpƒ^[ƒ“•¶Žš—ñ - wchar_t *pPat; //!< ƒpƒ^[ƒ“•¶Žš—ñ‘€ì—p‚̃|ƒCƒ“ƒ^ + // æ¤œç´¢ãƒ‘ã‚¿ãƒ¼ãƒ³ä½œæˆ + wchar_t *szNPattern; //!< ライブラリ渡ã—用ã®æ¤œç´¢ãƒ‘ターン文字列 + wchar_t *pPat; //!< パターン文字列æ“作用ã®ãƒã‚¤ãƒ³ã‚¿ nLen = wcslen(szPattern); if (szPattern2 == NULL) { - // ŒŸõ(BMatch)Žž - szNPattern = new wchar_t[ nLen + 15 ]; // 15Fus///optionv‚ª—]—T‚Å‚Í‚¢‚é‚悤‚ÉB + // 検索(BMatch)時 + szNPattern = new wchar_t[ nLen + 15 ]; // 15:「s///optionã€ãŒä½™è£•ã§ã¯ã„るよã†ã«ã€‚ pPat = szNPattern; *pPat++ = L'm'; } else { - // ’uŠ·(BSubst)Žž + // ç½®æ›(BSubst)時 nLen2 = wcslen(szPattern2) + wcslen(szAdd2); szNPattern = new wchar_t[ nLen + nLen2 + 15 ]; pPat = szNPattern; @@ -178,15 +178,15 @@ wchar_t* CBregexp::MakePatternSub( while (*szAdd2 != L'\0') { *pPat++ = *szAdd2++; } *pPat++ = DELIMITER; } - *pPat++ = L'k'; // Š¿Žš‘Ήž - *pPat++ = L'm'; // •¡”s‘Ήž(’A‚µAŒÄ‚Ño‚µ‘¤‚ª•¡”s‘Ήž‚Å‚È‚¢) - // 2006.01.22 ‚©‚ë‚Æ ˜_—‹t‚È‚Ì‚Å bIgnoreCase -> optCaseSensitive‚É•ÏX - if( !(nOption & optCaseSensitive) ) { // 2002/2/1 hor IgnoreCase ƒIƒvƒVƒ‡ƒ“’ljÁ ƒ}[ƒWFaroka - *pPat++ = L'i'; // ‘啶Žš¬•¶Žš‚𓯈ꎋ(–³Ž‹)‚·‚é + *pPat++ = L'k'; // 漢字対応 + *pPat++ = L'm'; // 複数行対応(但ã—ã€å‘¼ã³å‡ºã—å´ãŒè¤‡æ•°è¡Œå¯¾å¿œã§ãªã„) + // 2006.01.22 ã‹ã‚㨠論ç†é€†ãªã®ã§ bIgnoreCase -> optCaseSensitiveã«å¤‰æ›´ + if( !(nOption & optCaseSensitive) ) { // 2002/2/1 hor IgnoreCase オプション追加 マージ:aroka + *pPat++ = L'i'; // 大文字å°æ–‡å­—ã‚’åŒä¸€è¦–(無視)ã™ã‚‹ } - // 2006.01.22 ‚©‚ë‚Æ s’PˆÊ’uŠ·‚Ì‚½‚ß‚ÉA‘SˆæƒIƒvƒVƒ‡ƒ“’ljÁ + // 2006.01.22 ã‹ã‚㨠行å˜ä½ç½®æ›ã®ãŸã‚ã«ã€å…¨åŸŸã‚ªãƒ—ション追加 if( (nOption & optGlobal) ) { - *pPat++ = L'g'; // ‘Sˆæ(global)ƒIƒvƒVƒ‡ƒ“As’PˆÊ‚Ì’uŠ·‚ð‚·‚éŽž‚ÉŽg—p‚·‚é + *pPat++ = L'g'; // 全域(global)オプションã€è¡Œå˜ä½ã®ç½®æ›ã‚’ã™ã‚‹æ™‚ã«ä½¿ç”¨ã™ã‚‹ } if( (nOption & optExtend) ) { *pPat++ = L'x'; @@ -213,52 +213,52 @@ wchar_t* CBregexp::MakePatternSub( /*! -** s––•¶Žš‚̈Ӗ¡‚ªƒ‰ƒCƒuƒ‰ƒŠ‚Å‚Í \nŒÅ’è‚È‚Ì‚ÅA -** ‚±‚ê‚ð‚²‚Ü‚©‚·‚½‚ß‚ÉAƒ‰ƒCƒuƒ‰ƒŠ‚É“n‚·‚½‚ß‚ÌŒŸõE’uŠ·ƒpƒ^[ƒ“‚ðH•v‚·‚é +** 行末文字ã®æ„味ãŒãƒ©ã‚¤ãƒ–ラリã§ã¯ \n固定ãªã®ã§ã€ +** ã“れをã”ã¾ã‹ã™ãŸã‚ã«ã€ãƒ©ã‚¤ãƒ–ラリã«æ¸¡ã™ãŸã‚ã®æ¤œç´¢ãƒ»ç½®æ›ãƒ‘ターンを工夫ã™ã‚‹ ** -** s––•¶Žš($)‚ªŒŸõƒpƒ^[ƒ“‚ÌÅŒã‚É‚ ‚èA‚»‚Ì’¼‘O‚ª [\r\n] ‚Å‚È‚¢ê‡‚ÉA -** s––•¶Žš($)‚ÌŽè‘O‚É ([\r\n]+)‚ð•â‚Á‚ÄA’uŠ·ƒpƒ^[ƒ“‚É $(nParen+1)‚ð•â‚¤ -** ‚Æ‚¢‚¤ƒAƒ‹ƒSƒŠƒYƒ€‚ð—p‚¢‚ÄA‚²‚Ü‚©‚·B +** 行末文字($)ãŒæ¤œç´¢ãƒ‘ターンã®æœ€å¾Œã«ã‚ã‚Šã€ãã®ç›´å‰ãŒ [\r\n] ã§ãªã„å ´åˆã«ã€ +** 行末文字($)ã®æ‰‹å‰ã« ([\r\n]+)を補ã£ã¦ã€ç½®æ›ãƒ‘ターン㫠$(nParen+1)を補ㆠ+** ã¨ã„ã†ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã‚’用ã„ã¦ã€ã”ã¾ã‹ã™ã€‚ ** -** @note szPattern2: == NULL:ŒŸõ != NULL:’uŠ· +** @note szPattern2: == NULL:検索 != NULL:ç½®æ› ** -** @param[in] szPattern ŒŸõƒpƒ^[ƒ“ -** @param[in] szPattern2 ’uŠ·ƒpƒ^[ƒ“(NULL‚Ȃ猟õ) -** @param[in] nOption ŒŸõƒIƒvƒVƒ‡ƒ“ +** @param[in] szPattern 検索パターン +** @param[in] szPattern2 ç½®æ›ãƒ‘ターン(NULLãªã‚‰æ¤œç´¢) +** @param[in] nOption 検索オプション ** -** @retval ƒ‰ƒCƒuƒ‰ƒŠ‚É“n‚·ŒŸõƒpƒ^[ƒ“‚ւ̃|ƒCƒ“ƒ^‚ð•Ô‚· -** @note •Ô‚·ƒ|ƒCƒ“ƒ^‚ÍAŒÄ‚Ño‚µ‘¤‚Å delete ‚·‚邱‚Æ +** @retval ライブラリã«æ¸¡ã™æ¤œç´¢ãƒ‘ターンã¸ã®ãƒã‚¤ãƒ³ã‚¿ã‚’返㙠+** @note è¿”ã™ãƒã‚¤ãƒ³ã‚¿ã¯ã€å‘¼ã³å‡ºã—å´ã§ delete ã™ã‚‹ã“㨠** -** @date 2003.05.03 ‚©‚ë‚Æ ŠÖ”‚ÉØ‚èo‚µ +** @date 2003.05.03 ã‹ã‚㨠関数ã«åˆ‡ã‚Šå‡ºã— */ wchar_t* CBregexp::MakePattern( const wchar_t* szPattern, const wchar_t* szPattern2, int nOption ) { using namespace WCODE; - static const wchar_t* szCRLF = CRLF; //!< •œ‹AE‰üs - static const wchar_t szCR[] = {CR,0}; //!< •œ‹A - static const wchar_t szLF[] = {LF,0}; //!< ‰üs - static const wchar_t BOT_SUBST[] = L"s/\\$(\\)*)$/([\\\\r\\\\n]+)\\$$1/k"; //!< s––ƒpƒ^[ƒ“‚Ì’uŠ·—pƒpƒ^[ƒ“ - int nLen; //!< szPattern‚Ì’·‚³ - BREGEXP_W* sReg = NULL; //!< ƒRƒ“ƒpƒCƒ‹\‘¢‘Ì - wchar_t szMsg[80] = L""; //!< ƒGƒ‰[ƒƒbƒZ[ƒW - wchar_t szAdd2[5] = L""; //!< s––‚ ‚è’uŠ·‚Ì $”Žš Ši”[—p - int nParens = 0; //!< ŒŸõƒpƒ^[ƒ“(szPattern)’†‚ÌŠ‡ŒÊ‚Ì”(s––Žž‚ÉŽg—p) - wchar_t *szNPattern; //!< ŒŸõƒpƒ^[ƒ“ + static const wchar_t* szCRLF = CRLF; //!< 復帰・改行 + static const wchar_t szCR[] = {CR,0}; //!< 復帰 + static const wchar_t szLF[] = {LF,0}; //!< 改行 + static const wchar_t BOT_SUBST[] = L"s/\\$(\\)*)$/([\\\\r\\\\n]+)\\$$1/k"; //!< 行末パターンã®ç½®æ›ç”¨ãƒ‘ターン + int nLen; //!< szPatternã®é•·ã• + BREGEXP_W* sReg = NULL; //!< コンパイル構造体 + wchar_t szMsg[80] = L""; //!< エラーメッセージ + wchar_t szAdd2[5] = L""; //!< 行末ã‚ã‚Šç½®æ›ã® $æ•°å­— æ ¼ç´ç”¨ + int nParens = 0; //!< 検索パターン(szPattern)中ã®æ‹¬å¼§ã®æ•°(行末時ã«ä½¿ç”¨) + wchar_t *szNPattern; //!< 検索パターン nLen = CheckPattern( szPattern ); if( (m_ePatType & PAT_BOTTOM) != 0 ) { - bool bJustDollar = false; // s––Žw’è‚Ì$‚Ì‚Ý‚Å‚ ‚éƒtƒ‰ƒO($‚Ì‘O‚É \r\n‚ªŽw’肳‚ê‚Ä‚¢‚È‚¢) + bool bJustDollar = false; // 行末指定ã®$ã®ã¿ã§ã‚るフラグ($ã®å‰ã« \r\nãŒæŒ‡å®šã•ã‚Œã¦ã„ãªã„) szNPattern = MakePatternSub(szPattern, NULL, NULL, nOption); int matched = BMatch( szNPattern, szCRLF, szCRLF+wcslen(szCRLF), &sReg, szMsg ); if( matched >= 0 ) { - // szNPattern‚ª•s³‚ȃpƒ^[ƒ““™‚̃Gƒ‰[‚Å‚È‚©‚Á‚½ - // ƒGƒ‰[Žž‚É‚Í sReg‚ªNULL‚Ì‚Ü‚Ü‚È‚Ì‚ÅAsReg->nparens‚ւ̃AƒNƒZƒX‚Í•s³ - nParens = sReg->nparens; // ƒIƒŠƒWƒiƒ‹‚ÌŒŸõ•¶Žš—ñ’†‚Ì()‚Ì”‚ð‹L‰¯ + // szNPatternãŒä¸æ­£ãªãƒ‘ターン等ã®ã‚¨ãƒ©ãƒ¼ã§ãªã‹ã£ãŸ + // エラー時ã«ã¯ sRegãŒNULLã®ã¾ã¾ãªã®ã§ã€sReg->nparensã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã¯ä¸æ­£ + nParens = sReg->nparens; // オリジナルã®æ¤œç´¢æ–‡å­—列中ã®()ã®æ•°ã‚’記憶 if( matched > 0 ) { if( sReg->startp[0] == &szCRLF[1] && sReg->endp[0] == &szCRLF[1] ) { if( BMatch( NULL, szCR, szCR+wcslen(szCR), &sReg, szMsg ) > 0 && sReg->startp[0] == &szCR[1] && sReg->endp[0] == &szCR[1] ) { if( BMatch( NULL, szLF, szLF+wcslen(szLF), &sReg, szMsg ) > 0 && sReg->startp[0] == &szLF[0] && sReg->endp[0] == &szLF[0] ) { - // ŒŸõ•¶Žš—ñ‚Í s––($)‚Ì‚Ý‚¾‚Á‚½ + // 検索文字列㯠行末($)ã®ã¿ã ã£ãŸ bJustDollar = true; } } @@ -266,7 +266,7 @@ wchar_t* CBregexp::MakePattern( const wchar_t* szPattern, const wchar_t* szPatte } else { if( BMatch( NULL, szCR, szCR+wcslen(szCR), &sReg, szMsg ) <= 0 ) { if( BMatch( NULL, szLF, szLF+wcslen(szLF), &sReg, szMsg ) <= 0 ) { - // ŒŸõ•¶Žš—ñ‚ÍA•¶Žš{s––($)‚¾‚Á‚½ + // 検索文字列ã¯ã€æ–‡å­—+行末($)ã ã£ãŸ bJustDollar = true; } } @@ -277,15 +277,15 @@ wchar_t* CBregexp::MakePattern( const wchar_t* szPattern, const wchar_t* szPatte delete [] szNPattern; if( bJustDollar == true || (m_ePatType & PAT_TAB) != 0 ) { - // s––Žw’è‚Ì$ or s“ªs––Žw’è ‚È‚Ì‚ÅAŒŸõ•¶Žš—ñ‚ð’uŠ· + // 行末指定ã®$ or 行頭行末指定 ãªã®ã§ã€æ¤œç´¢æ–‡å­—åˆ—ã‚’ç½®æ› if( BSubst( BOT_SUBST, szPattern, szPattern + nLen, &sReg, szMsg ) > 0 ) { szPattern = sReg->outp; if( szPattern2 != NULL ) { - // ’uŠ·ƒpƒ^[ƒ“‚à‚ ‚é‚Ì‚ÅA’uŠ·ƒpƒ^[ƒ“‚ÌÅŒã‚É $(nParens+1)‚ð’ljÁ + // ç½®æ›ãƒ‘ターンもã‚ã‚‹ã®ã§ã€ç½®æ›ãƒ‘ターンã®æœ€å¾Œã« $(nParens+1)を追加 auto_sprintf( szAdd2, L"$%d", nParens + 1 ); } } - // sReg->outp ‚̃|ƒCƒ“ƒ^‚ðŽQÆ‚µ‚Ä‚¢‚é‚Ì‚ÅAsReg‚ð‰ð•ú‚·‚é‚Ì‚ÍÅŒã‚É + // sReg->outp ã®ãƒã‚¤ãƒ³ã‚¿ã‚’å‚ç…§ã—ã¦ã„ã‚‹ã®ã§ã€sRegを解放ã™ã‚‹ã®ã¯æœ€å¾Œã« } } @@ -298,13 +298,13 @@ wchar_t* CBregexp::MakePattern( const wchar_t* szPattern, const wchar_t* szPatte /*! - CBregexp::MakePattern()‚Ì‘ã‘ÖB - * ƒGƒXƒP[ƒv‚³‚ê‚Ä‚¨‚炸A•¶ŽšW‡‚Æ \Q...\E‚Ì’†‚É‚È‚¢ . ‚ð [^\r\n] ‚É’uŠ·‚·‚éB - * ƒGƒXƒP[ƒv‚³‚ê‚Ä‚¨‚炸A•¶ŽšW‡‚Æ \Q...\E‚Ì’†‚É‚È‚¢ $ ‚ð (?MakePatternSub( strModifiedSearch.data(), szReplace, L"", nOption ); } /*! - JRE32‚̃Gƒ~ƒ…ƒŒ[ƒVƒ‡ƒ“ŠÖ”D‹ó‚Ì•¶Žš—ñ‚ɑ΂µ‚ÄŒŸõE’uŠ·‚ðs‚¤‚±‚Æ‚É‚æ‚è - BREGEXP_W\‘¢‘̶̂¬‚Ì‚Ý‚ðs‚¤D + JRE32ã®ã‚¨ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³é–¢æ•°ï¼Žç©ºã®æ–‡å­—列ã«å¯¾ã—ã¦æ¤œç´¢ãƒ»ç½®æ›ã‚’è¡Œã†ã“ã¨ã«ã‚ˆã‚Š + BREGEXP_W構造体ã®ç”Ÿæˆã®ã¿ã‚’è¡Œã†ï¼Ž - @param[in] szPattern0 ŒŸõor’uŠ·ƒpƒ^[ƒ“ - @param[in] szPattern1 ’uŠ·Œã•¶Žš—ñƒpƒ^[ƒ“(ŒŸõŽž‚ÍNULL) - @param[in] nOption ŒŸõE’uŠ·ƒIƒvƒVƒ‡ƒ“ + @param[in] szPattern0 検索orç½®æ›ãƒ‘ターン + @param[in] szPattern1 ç½®æ›å¾Œæ–‡å­—列パターン(検索時ã¯NULL) + @param[in] nOption 検索・置æ›ã‚ªãƒ—ション - @retval true ¬Œ÷ - @retval false Ž¸”s + @retval true æˆåŠŸ + @retval false 失敗 */ bool CBregexp::Compile( const wchar_t *szPattern0, const wchar_t *szPattern1, int nOption, bool bKakomi ) { - // DLL‚ª—˜—p‰Â”\‚Å‚È‚¢‚Æ‚«‚̓Gƒ‰[I—¹ + // DLLãŒåˆ©ç”¨å¯èƒ½ã§ãªã„ã¨ãã¯ã‚¨ãƒ©ãƒ¼çµ‚了 if( !IsAvailable() ) return false; - // BREGEXP_W\‘¢‘̂̉ð•ú + // BREGEXP_W構造体ã®è§£æ”¾ ReleaseCompileBuffer(); - // ƒ‰ƒCƒuƒ‰ƒŠ‚É“n‚·ŒŸõƒpƒ^[ƒ“‚ðì¬ - // •ÊŠÖ”‚Å‹¤’ʈ—‚É•ÏX 2003.05.03 by ‚©‚ë‚Æ + // ライブラリã«æ¸¡ã™æ¤œç´¢ãƒ‘ã‚¿ãƒ¼ãƒ³ã‚’ä½œæˆ + // 別関数ã§å…±é€šå‡¦ç†ã«å¤‰æ›´ 2003.05.03 by ã‹ã‚㨠wchar_t *szNPattern = NULL; const wchar_t *pszNPattern = NULL; if( bKakomi ){ @@ -446,74 +446,74 @@ bool CBregexp::Compile( const wchar_t *szPattern0, const wchar_t *szPattern1, in szNPattern = MakePatternAlternate( szPattern0, szPattern1, nOption ); pszNPattern = szNPattern; } - m_szMsg[0] = L'\0'; //!< ƒGƒ‰[‰ðœ + m_szMsg[0] = L'\0'; //!< エラー解除 if (szPattern1 == NULL) { - // ŒŸõŽÀs + // 検索実行 BMatch( pszNPattern, m_tmpBuf, m_tmpBuf+1, &m_pRegExp, m_szMsg ); } else { - // ’uŠ·ŽÀs + // ç½®æ›å®Ÿè¡Œ BSubst( pszNPattern, m_tmpBuf, m_tmpBuf+1, &m_pRegExp, m_szMsg ); } delete [] szNPattern; - // ƒƒbƒZ[ƒW‚ª‹ó•¶Žš—ñ‚Å‚È‚¯‚ê‚Ή½‚ç‚©‚̃Gƒ‰[”­¶B - // ƒTƒ“ƒvƒ‹ƒ\[ƒXŽQÆ + // メッセージãŒç©ºæ–‡å­—列ã§ãªã‘ã‚Œã°ä½•ã‚‰ã‹ã®ã‚¨ãƒ©ãƒ¼ç™ºç”Ÿã€‚ + // サンプルソースå‚ç…§ if( m_szMsg[0] ){ ReleaseCompileBuffer(); return false; } - // s“ªðŒƒ`ƒFƒbƒN‚ÍAMakePattern‚ÉŽæ‚èž‚Ý 2003.05.03 by ‚©‚ë‚Æ + // 行頭æ¡ä»¶ãƒã‚§ãƒƒã‚¯ã¯ã€MakePatternã«å–り込㿠2003.05.03 by ã‹ã‚㨠return true; } /*! - JRE32‚̃Gƒ~ƒ…ƒŒ[ƒVƒ‡ƒ“ŠÖ”DŠù‚É‚ ‚éƒRƒ“ƒpƒCƒ‹\‘¢‘Ì‚ð—˜—p‚µ‚ÄŒŸõi1sj‚ð - s‚¤D + JRE32ã®ã‚¨ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³é–¢æ•°ï¼Žæ—¢ã«ã‚るコンパイル構造体を利用ã—ã¦æ¤œç´¢ï¼ˆ1行)を + è¡Œã†ï¼Ž - @param[in] target ŒŸõ‘Îۗ̈æ擪ƒAƒhƒŒƒX - @param[in] len ŒŸõ‘Îۗ̈æƒTƒCƒY - @param[in] nStart ŒŸõŠJŽnˆÊ’uD(擪‚Í0) + @param[in] target 検索対象領域先頭アドレス + @param[in] len 検索対象領域サイズ + @param[in] nStart 検索開始ä½ç½®ï¼Ž(先頭ã¯0) @retval true Match - @retval false No Match ‚Ü‚½‚Í ƒGƒ‰[BƒGƒ‰[‚Í GetLastMessage()‚É‚æ‚è”»’è‰Â”\B + @retval false No Match ã¾ãŸã¯ エラー。エラー㯠GetLastMessage()ã«ã‚ˆã‚Šåˆ¤å®šå¯èƒ½ã€‚ */ bool CBregexp::Match( const wchar_t* target, int len, int nStart ) { - int matched; //!< ŒŸõˆê’v‚µ‚½‚©? >0:Match, 0:NoMatch, <0:Error + int matched; //!< 検索一致ã—ãŸã‹? >0:Match, 0:NoMatch, <0:Error - // DLL‚ª—˜—p‰Â”\‚Å‚È‚¢‚Æ‚«A‚Ü‚½‚Í\‘¢‘Ì‚ª–¢Ý’è‚ÌŽž‚̓Gƒ‰[I—¹ + // DLLãŒåˆ©ç”¨å¯èƒ½ã§ãªã„ã¨ãã€ã¾ãŸã¯æ§‹é€ ä½“ãŒæœªè¨­å®šã®æ™‚ã¯ã‚¨ãƒ©ãƒ¼çµ‚了 if( (!IsAvailable()) || m_pRegExp == NULL ){ return false; } - m_szMsg[0] = '\0'; //!< ƒGƒ‰[‰ðœ - // Šg’£ŠÖ”‚ª‚È‚¢ê‡‚ÍAs‚Ì擪("^")‚ÌŒŸõŽž‚Ì“Á•Êˆ— by ‚©‚ë‚Æ + m_szMsg[0] = '\0'; //!< エラー解除 + // 拡張関数ãŒãªã„å ´åˆã¯ã€è¡Œã®å…ˆé ­("^")ã®æ¤œç´¢æ™‚ã®ç‰¹åˆ¥å‡¦ç† by ã‹ã‚㨠if (!ExistBMatchEx()) { /* - ** s“ª(^)‚ƃ}ƒbƒ`‚·‚é‚Ì‚ÍAnStart=0‚ÌŽž‚¾‚¯‚È‚Ì‚ÅA‚»‚êˆÈŠO‚Í false + ** 行頭(^)ã¨ãƒžãƒƒãƒã™ã‚‹ã®ã¯ã€nStart=0ã®æ™‚ã ã‘ãªã®ã§ã€ãれ以外㯠false */ if( (m_ePatType & PAT_TOP) != 0 && nStart != 0 ) { - // nStart!=0‚Å‚àABMatch()‚É‚Æ‚Á‚Ä‚Ís“ª‚É‚È‚é‚Ì‚ÅA‚±‚±‚Åfalse‚É‚·‚é•K—v‚ª‚ ‚é + // nStart!=0ã§ã‚‚ã€BMatch()ã«ã¨ã£ã¦ã¯è¡Œé ­ã«ãªã‚‹ã®ã§ã€ã“ã“ã§falseã«ã™ã‚‹å¿…è¦ãŒã‚ã‚‹ return false; } - // ŒŸõ•¶Žš—ñNULL‚ðŽw’è‚·‚é‚Æ‘O‰ñ‚Æ“¯ˆê‚Ì•¶Žš—ñ‚ÆŒ©‚È‚³‚ê‚é + // 検索文字列ï¼NULLを指定ã™ã‚‹ã¨å‰å›žã¨åŒä¸€ã®æ–‡å­—列ã¨è¦‹ãªã•ã‚Œã‚‹ matched = BMatch( NULL, target + nStart, target + len, &m_pRegExp, m_szMsg ); } else { - // ŒŸõ•¶Žš—ñNULL‚ðŽw’è‚·‚é‚Æ‘O‰ñ‚Æ“¯ˆê‚Ì•¶Žš—ñ‚ÆŒ©‚È‚³‚ê‚é + // 検索文字列ï¼NULLを指定ã™ã‚‹ã¨å‰å›žã¨åŒä¸€ã®æ–‡å­—列ã¨è¦‹ãªã•ã‚Œã‚‹ matched = BMatchEx( NULL, target, target + nStart, target + len, &m_pRegExp, m_szMsg ); } m_szTarget = target; if ( matched < 0 || m_szMsg[0] ) { - // BMatchƒGƒ‰[ - // ƒGƒ‰[ˆ—‚ð‚µ‚Ä‚¢‚È‚©‚Á‚½‚Ì‚ÅAnStart>=len‚̂悤‚ÈꇂÉAƒ}ƒbƒ`ˆµ‚¢‚É‚È‚è - // –³ŒÀ’uŠ·“™‚Ì•s‹ï‡‚É‚È‚Á‚Ä‚¢‚½ 2003.05.03 by ‚©‚ë‚Æ + // BMatchエラー + // エラー処ç†ã‚’ã—ã¦ã„ãªã‹ã£ãŸã®ã§ã€nStart>=lenã®ã‚ˆã†ãªå ´åˆã«ã€ãƒžãƒƒãƒæ‰±ã„ã«ãªã‚Š + // ç„¡é™ç½®æ›ç­‰ã®ä¸å…·åˆã«ãªã£ã¦ã„㟠2003.05.03 by ã‹ã‚㨠return false; } else if ( matched == 0 ) { - // ˆê’v‚µ‚È‚©‚Á‚½ + // 一致ã—ãªã‹ã£ãŸ return false; } @@ -523,41 +523,41 @@ bool CBregexp::Match( const wchar_t* target, int len, int nStart ) //<< 2002/03/27 Azumaiya /*! - ³‹K•\Œ»‚É‚æ‚镶Žš—ñ’uŠ· - Šù‚É‚ ‚éƒRƒ“ƒpƒCƒ‹\‘¢‘Ì‚ð—˜—p‚µ‚Ä’uŠ·i1sj‚ð - s‚¤D + æ­£è¦è¡¨ç¾ã«ã‚ˆã‚‹æ–‡å­—åˆ—ç½®æ› + æ—¢ã«ã‚るコンパイル構造体を利用ã—ã¦ç½®æ›ï¼ˆ1行)を + è¡Œã†ï¼Ž - @param[in] szTarget ’uŠ·‘ÎÛƒf[ƒ^ - @param[in] nLen ’uŠ·‘ÎÛƒf[ƒ^’· - @param[in] nStart ’uŠ·ŠJŽnˆÊ’u(0‚©‚çnLen–¢–ž) + @param[in] szTarget ç½®æ›å¯¾è±¡ãƒ‡ãƒ¼ã‚¿ + @param[in] nLen ç½®æ›å¯¾è±¡ãƒ‡ãƒ¼ã‚¿é•· + @param[in] nStart ç½®æ›é–‹å§‹ä½ç½®(0ã‹ã‚‰nLen未満) - @retval ’uŠ·ŒÂ” + @retval ç½®æ›å€‹æ•° - @date 2007.01.16 ryoji –ß‚è’l‚ð’uŠ·ŒÂ”‚É•ÏX + @date 2007.01.16 ryoji 戻り値を置æ›å€‹æ•°ã«å¤‰æ›´ */ int CBregexp::Replace(const wchar_t *szTarget, int nLen, int nStart) { int result; - // DLL‚ª—˜—p‰Â”\‚Å‚È‚¢‚Æ‚«A‚Ü‚½‚Í\‘¢‘Ì‚ª–¢Ý’è‚ÌŽž‚̓Gƒ‰[I—¹ + // DLLãŒåˆ©ç”¨å¯èƒ½ã§ãªã„ã¨ãã€ã¾ãŸã¯æ§‹é€ ä½“ãŒæœªè¨­å®šã®æ™‚ã¯ã‚¨ãƒ©ãƒ¼çµ‚了 if( !IsAvailable() || m_pRegExp == NULL ) { return false; } - // From Here 2003.05.03 ‚©‚ë‚Æ - // nLen‚ª‚O‚¾‚ÆABSubst()‚ª’uŠ·‚ÉŽ¸”s‚µ‚Ä‚µ‚Ü‚¤‚Ì‚ÅA‘ã—pƒf[ƒ^(m_tmpBuf)‚ðŽg‚¤ + // From Here 2003.05.03 ã‹ã‚㨠+ // nLenãŒï¼ã ã¨ã€BSubst()ãŒç½®æ›ã«å¤±æ•—ã—ã¦ã—ã¾ã†ã®ã§ã€ä»£ç”¨ãƒ‡ãƒ¼ã‚¿(m_tmpBuf)を使ㆠ// - // 2007.01.19 ryoji ‘ã—pƒf[ƒ^Žg—p‚ðƒRƒƒ“ƒgƒAƒEƒg - // Žg—p‚·‚é‚ÆŒ»ó‚Å‚ÍŒ‹‰Ê‚É‚PƒoƒCƒg—]•ª‚ȃSƒ~‚ª•t‰Á‚³‚ê‚é - // ’uŠ·‚ÉŽ¸”s‚·‚é‚Ì‚ÍnLen‚ª‚O‚ÉŒÀ‚炸 nLen = nStart ‚Ì‚Æ‚«is“ªƒ}ƒbƒ`‚¾‚¯‘Îô‚µ‚Ä‚àDDDj + // 2007.01.19 ryoji 代用データ使用をコメントアウト + // 使用ã™ã‚‹ã¨ç¾çŠ¶ã§ã¯çµæžœã«ï¼‘ãƒã‚¤ãƒˆä½™åˆ†ãªã‚´ãƒŸãŒä»˜åŠ ã•ã‚Œã‚‹ + // ç½®æ›ã«å¤±æ•—ã™ã‚‹ã®ã¯nLenãŒï¼ã«é™ã‚‰ãš nLen = nStart ã®ã¨ã(行頭マッãƒã ã‘対策ã—ã¦ã‚‚...) // //if( nLen == 0 ) { // szTarget = m_tmpBuf; // nLen = 1; //} - // To Here 2003.05.03 ‚©‚ë‚Æ + // To Here 2003.05.03 ã‹ã‚㨠- m_szMsg[0] = '\0'; //!< ƒGƒ‰[‰ðœ + m_szMsg[0] = '\0'; //!< エラー解除 if (!ExistBSubstEx()) { result = BSubst( NULL, szTarget + nStart, szTarget + nLen, &m_pRegExp, m_szMsg ); } else { @@ -565,14 +565,14 @@ int CBregexp::Replace(const wchar_t *szTarget, int nLen, int nStart) } m_szTarget = szTarget; - // ƒƒbƒZ[ƒW‚ª‹ó•¶Žš—ñ‚Å‚È‚¯‚ê‚Ή½‚ç‚©‚̃Gƒ‰[”­¶B - // ƒTƒ“ƒvƒ‹ƒ\[ƒXŽQÆ + // メッセージãŒç©ºæ–‡å­—列ã§ãªã‘ã‚Œã°ä½•ã‚‰ã‹ã®ã‚¨ãƒ©ãƒ¼ç™ºç”Ÿã€‚ + // サンプルソースå‚ç…§ if( m_szMsg[0] ) { return 0; } if( result < 0 ) { - // ’uŠ·‚·‚é‚à‚Ì‚ª‚È‚©‚Á‚½ + // ç½®æ›ã™ã‚‹ã‚‚ã®ãŒãªã‹ã£ãŸ return 0; } return result; @@ -598,18 +598,18 @@ const TCHAR* CBregexp::GetLastMessage() const // From Here Jun. 26, 2001 genta /*! - —^‚¦‚ç‚ꂽ³‹K•\Œ»ƒ‰ƒCƒuƒ‰ƒŠ‚̉Šú‰»‚ðs‚¤D - ƒƒbƒZ[ƒWƒtƒ‰ƒO‚ªON‚ʼnŠú‰»‚ÉŽ¸”s‚µ‚½‚Æ‚«‚̓ƒbƒZ[ƒW‚ð•\Ž¦‚·‚éD + 与ãˆã‚‰ã‚ŒãŸæ­£è¦è¡¨ç¾ãƒ©ã‚¤ãƒ–ラリã®åˆæœŸåŒ–ã‚’è¡Œã†ï¼Ž + メッセージフラグãŒONã§åˆæœŸåŒ–ã«å¤±æ•—ã—ãŸã¨ãã¯ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’表示ã™ã‚‹ï¼Ž - @retval true ‰Šú‰»¬Œ÷ - @retval false ‰Šú‰»‚ÉŽ¸”s + @retval true åˆæœŸåŒ–æˆåŠŸ + @retval false åˆæœŸåŒ–ã«å¤±æ•— - @date 2007.08.12 genta ‹¤’ÊÝ’è‚©‚çDLL–¼‚ðŽæ“¾‚·‚é + @date 2007.08.12 genta 共通設定ã‹ã‚‰DLLåã‚’å–å¾—ã™ã‚‹ */ bool InitRegexp( - HWND hWnd, //!< [in] ƒ_ƒCƒAƒƒOƒ{ƒbƒNƒX‚̃EƒBƒ“ƒhƒEƒnƒ“ƒhƒ‹Bƒo[ƒWƒ‡ƒ“”Ô†‚Ìݒ肪•s—v‚Å‚ ‚ê‚ÎNULLB - CBregexp& rRegexp, //!< [in] ƒ`ƒFƒbƒN‚É—˜—p‚·‚éCBregexpƒNƒ‰ƒX‚Ö‚ÌŽQÆ - bool bShowMessage //!< [in] ‰Šú‰»Ž¸”sŽž‚ɃGƒ‰[ƒƒbƒZ[ƒW‚ðo‚·ƒtƒ‰ƒO + HWND hWnd, //!< [in] ダイアログボックスã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ãƒãƒ³ãƒ‰ãƒ«ã€‚ãƒãƒ¼ã‚¸ãƒ§ãƒ³ç•ªå·ã®è¨­å®šãŒä¸è¦ã§ã‚ã‚Œã°NULL。 + CBregexp& rRegexp, //!< [in] ãƒã‚§ãƒƒã‚¯ã«åˆ©ç”¨ã™ã‚‹CBregexpクラスã¸ã®å‚ç…§ + bool bShowMessage //!< [in] åˆæœŸåŒ–失敗時ã«ã‚¨ãƒ©ãƒ¼ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’出ã™ãƒ•ãƒ©ã‚° ) { // From Here 2007.08.12 genta @@ -640,16 +640,16 @@ bool InitRegexp( } /*! - ³‹K•\Œ»ƒ‰ƒCƒuƒ‰ƒŠ‚Ì‘¶Ý‚ðŠm”F‚µA‚ ‚ê‚΃o[ƒWƒ‡ƒ“î•ñ‚ðŽw’èƒRƒ“ƒ|[ƒlƒ“ƒg‚ɃZƒbƒg‚·‚éB - Ž¸”s‚µ‚½ê‡‚ɂ͋󕶎š—ñ‚ðƒZƒbƒg‚·‚éB + æ­£è¦è¡¨ç¾ãƒ©ã‚¤ãƒ–ラリã®å­˜åœ¨ã‚’確èªã—ã€ã‚ã‚Œã°ãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…報を指定コンãƒãƒ¼ãƒãƒ³ãƒˆã«ã‚»ãƒƒãƒˆã™ã‚‹ã€‚ + 失敗ã—ãŸå ´åˆã«ã¯ç©ºæ–‡å­—列をセットã™ã‚‹ã€‚ - @retval true ƒo[ƒWƒ‡ƒ“”Ô†‚ÌÝ’è‚ɬŒ÷ - @retval false ³‹K•\Œ»ƒ‰ƒCƒuƒ‰ƒŠ‚̉Šú‰»‚ÉŽ¸”s + @retval true ãƒãƒ¼ã‚¸ãƒ§ãƒ³ç•ªå·ã®è¨­å®šã«æˆåŠŸ + @retval false æ­£è¦è¡¨ç¾ãƒ©ã‚¤ãƒ–ラリã®åˆæœŸåŒ–ã«å¤±æ•— */ bool CheckRegexpVersion( - HWND hWnd, //!< [in] ƒ_ƒCƒAƒƒOƒ{ƒbƒNƒX‚̃EƒBƒ“ƒhƒEƒnƒ“ƒhƒ‹Bƒo[ƒWƒ‡ƒ“”Ô†‚Ìݒ肪•s—v‚Å‚ ‚ê‚ÎNULLB - int nCmpId, //!< [in] ƒo[ƒWƒ‡ƒ“•¶Žš—ñ‚ðÝ’è‚·‚éƒRƒ“ƒ|[ƒlƒ“ƒgID - bool bShowMessage //!< [in] ‰Šú‰»Ž¸”sŽž‚ɃGƒ‰[ƒƒbƒZ[ƒW‚ðo‚·ƒtƒ‰ƒO + HWND hWnd, //!< [in] ダイアログボックスã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ãƒãƒ³ãƒ‰ãƒ«ã€‚ãƒãƒ¼ã‚¸ãƒ§ãƒ³ç•ªå·ã®è¨­å®šãŒä¸è¦ã§ã‚ã‚Œã°NULL。 + int nCmpId, //!< [in] ãƒãƒ¼ã‚¸ãƒ§ãƒ³æ–‡å­—列を設定ã™ã‚‹ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆID + bool bShowMessage //!< [in] åˆæœŸåŒ–失敗時ã«ã‚¨ãƒ©ãƒ¼ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’出ã™ãƒ•ãƒ©ã‚° ) { CBregexp cRegexp; @@ -667,15 +667,15 @@ bool CheckRegexpVersion( } /*! - ³‹K•\Œ»‚ª‹K‘¥‚É]‚Á‚Ä‚¢‚é‚©‚ðƒ`ƒFƒbƒN‚·‚éB + æ­£è¦è¡¨ç¾ãŒè¦å‰‡ã«å¾“ã£ã¦ã„ã‚‹ã‹ã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã€‚ - @param szPattern [in] ƒ`ƒFƒbƒN‚·‚鳋K•\Œ» - @param hWnd [in] ƒƒbƒZ[ƒWƒ{ƒbƒNƒX‚ÌeƒEƒBƒ“ƒhƒE - @param bShowMessage [in] ‰Šú‰»Ž¸”sŽž‚ɃGƒ‰[ƒƒbƒZ[ƒW‚ðo‚·ƒtƒ‰ƒO - @param nOption [in] ‘啶Žš‚Ƭ•¶Žš‚𖳎‹‚µ‚Ä”äŠr‚·‚éƒtƒ‰ƒO // 2002/2/1 hor’ljÁ + @param szPattern [in] ãƒã‚§ãƒƒã‚¯ã™ã‚‹æ­£è¦è¡¨ç¾ + @param hWnd [in] メッセージボックスã®è¦ªã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ + @param bShowMessage [in] åˆæœŸåŒ–失敗時ã«ã‚¨ãƒ©ãƒ¼ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’出ã™ãƒ•ãƒ©ã‚° + @param nOption [in] 大文字ã¨å°æ–‡å­—を無視ã—ã¦æ¯”較ã™ã‚‹ãƒ•ãƒ©ã‚° // 2002/2/1 hor追加 - @retval true ³‹K•\Œ»‚Í‹K‘¥’Ê‚è - @retval false •¶–@‚ÉŒë‚肪‚ ‚éB‚Ü‚½‚ÍAƒ‰ƒCƒuƒ‰ƒŠ‚ªŽg—p‚Å‚«‚È‚¢B + @retval true æ­£è¦è¡¨ç¾ã¯è¦å‰‡é€šã‚Š + @retval false 文法ã«èª¤ã‚ŠãŒã‚る。ã¾ãŸã¯ã€ãƒ©ã‚¤ãƒ–ラリãŒä½¿ç”¨ã§ããªã„。 */ bool CheckRegexpSyntax( const wchar_t* szPattern, @@ -693,7 +693,7 @@ bool CheckRegexpSyntax( if( nOption == -1 ){ nOption = CBregexp::optCaseSensitive; } - if( !cRegexp.Compile( szPattern, NULL, nOption, bKakomi ) ){ // 2002/2/1 hor’ljÁ + if( !cRegexp.Compile( szPattern, NULL, nOption, bKakomi ) ){ // 2002/2/1 hor追加 if( bShowMessage ){ ::MessageBox( hWnd, cRegexp.GetLastMessage(), LS(STR_BREGONIG_TITLE), MB_OK | MB_ICONEXCLAMATION ); diff --git a/sakura_core/extmodule/CBregexp.h b/sakura_core/extmodule/CBregexp.h index 07936b69ce..e3e8125bb6 100644 --- a/sakura_core/extmodule/CBregexp.h +++ b/sakura_core/extmodule/CBregexp.h @@ -1,21 +1,21 @@ -/*! @file +/*! @file @brief BREGEXP Library Handler - Perl5ŒÝŠ·³‹K•\Œ»‚ðˆµ‚¤DLL‚Å‚ ‚éBREGEXP.DLL‚ð—˜—p‚·‚邽‚߂̃Cƒ“ƒ^[ƒtƒF[ƒX + Perl5互æ›æ­£è¦è¡¨ç¾ã‚’扱ã†DLLã§ã‚ã‚‹BREGEXP.DLLを利用ã™ã‚‹ãŸã‚ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ãƒ¼ã‚¹ @author genta @date Jun. 10, 2001 - @date Jan. 05, 2002 genta ƒRƒƒ“ƒg’ljÁ + @date Jan. 05, 2002 genta コメント追加 @date 2002/2/1 hor - @date Jul. 25, 2002 genta s“ªðŒ‚Ìl—¶‚ð’ljÁ + @date Jul. 25, 2002 genta 行頭æ¡ä»¶ã®è€ƒæ…®ã‚’追加 */ /* Copyright (C) 2001-2002, genta Copyright (C) 2001, novice, hor Copyright (C) 2002, novice, hor, Azumaiya - Copyright (C) 2003, ‚©‚ë‚Æ - Copyright (C) 2005, ‚©‚ë‚Æ, aroka - Copyright (C) 2006, ‚©‚ë‚Æ + Copyright (C) 2003, ã‹ã‚㨠+ Copyright (C) 2005, ã‹ã‚ã¨, aroka + Copyright (C) 2006, ã‹ã‚㨠Copyright (C) 2007, ryoji This software is provided 'as-is', without any express or implied @@ -45,107 +45,107 @@ #include "CBregexpDll2.h" /*! - @brief PerlŒÝŠ·³‹K•\Œ» BREGEXP.DLL ‚ðƒTƒ|[ƒg‚·‚éƒNƒ‰ƒX + @brief Perl互æ›æ­£è¦è¡¨ç¾ BREGEXP.DLL をサãƒãƒ¼ãƒˆã™ã‚‹ã‚¯ãƒ©ã‚¹ - DLL‚Ì“®“Iƒ[ƒh‚ðs‚¤‚½‚ßADllHandler‚ðŒp³‚µ‚Ä‚¢‚éB + DLLã®å‹•çš„ロードを行ã†ãŸã‚ã€DllHandlerを継承ã—ã¦ã„る。 - CJre‚É‹ß‚¢“®ì‚ð‚³‚¹‚邽‚ßAƒoƒbƒtƒ@‚ðƒNƒ‰ƒX“à‚É1‚•ێ‚µA - ƒf[ƒ^‚ÌÝ’è‚ÆŒŸõ‚Ì‚Q‚‚̃Xƒeƒbƒv‚É•ªŠ„‚·‚é‚悤‚É‚µ‚Ä‚¢‚éB - JreƒGƒ~ƒ…ƒŒ[ƒVƒ‡ƒ“ŠÖ”‚ðŽg‚¤‚Æ‚«‚Í“ü‚êŽq‚É‚È‚ç‚È‚¢‚悤‚É’ˆÓ‚·‚邱‚ÆB + CJreã«è¿‘ã„動作をã•ã›ã‚‹ãŸã‚ã€ãƒãƒƒãƒ•ã‚¡ã‚’クラス内ã«1ã¤ä¿æŒã—〠+ データã®è¨­å®šã¨æ¤œç´¢ã®ï¼’ã¤ã®ã‚¹ãƒ†ãƒƒãƒ—ã«åˆ†å‰²ã™ã‚‹ã‚ˆã†ã«ã—ã¦ã„る。 + Jreエミュレーション関数を使ã†ã¨ãã¯å…¥ã‚Œå­ã«ãªã‚‰ãªã„よã†ã«æ³¨æ„ã™ã‚‹ã“ã¨ã€‚ - –{—ˆ‚Í‚±‚̂悤‚È•”•ª‚͕ʃNƒ‰ƒX‚Æ‚µ‚Ä•ª—£‚·‚ׂ«‚¾‚ªA‚»‚Ìꇂ±‚̃Nƒ‰ƒX‚ª - ”jŠü‚³‚ê‚é‘O‚É‘S‚ẴNƒ‰ƒX‚ð”jŠü‚·‚é•K—v‚ª‚ ‚éB - ‚»‚̈À‘S«‚ð•ÛØ‚·‚é‚Ì‚ª“‚¢‚½‚ßAŒ»Žž“_‚Å‚Í—¼ŽÒ‚ð‚P‚‚̃Nƒ‰ƒX‚É“ü‚ꂽB + 本æ¥ã¯ã“ã®ã‚ˆã†ãªéƒ¨åˆ†ã¯åˆ¥ã‚¯ãƒ©ã‚¹ã¨ã—ã¦åˆ†é›¢ã™ã¹ãã ãŒã€ãã®å ´åˆã“ã®ã‚¯ãƒ©ã‚¹ãŒ + 破棄ã•ã‚Œã‚‹å‰ã«å…¨ã¦ã®ã‚¯ãƒ©ã‚¹ã‚’破棄ã™ã‚‹å¿…è¦ãŒã‚る。 + ãã®å®‰å…¨æ€§ã‚’ä¿è¨¼ã™ã‚‹ã®ãŒé›£ã—ã„ãŸã‚ã€ç¾æ™‚点ã§ã¯ä¸¡è€…を1ã¤ã®ã‚¯ãƒ©ã‚¹ã«å…¥ã‚ŒãŸã€‚ - @note ‚±‚̃Nƒ‰ƒX‚ÍThread Safe‚Å‚Í‚È‚¢B + @note ã“ã®ã‚¯ãƒ©ã‚¹ã¯Thread Safeã§ã¯ãªã„。 - @date 2005.03.19 ‚©‚ë‚Æ ƒŠƒtƒ@ƒNƒ^ƒŠƒ“ƒOBƒNƒ‰ƒX“à•”‚ð‰B•Á - @date 2006.01.22 ‚©‚ë‚Æ ƒIƒvƒVƒ‡ƒ“’ljÁE–¼Ì•ÏX(‘S‚Äs’uŠ·—pGlobalƒIƒvƒVƒ‡ƒ“’ljÁ‚Ì‚½‚ß) + @date 2005.03.19 ã‹ã‚㨠リファクタリング。クラス内部を隠蔽 + @date 2006.01.22 ã‹ã‚㨠オプション追加・å称変更(å…¨ã¦è¡Œç½®æ›ç”¨Globalオプション追加ã®ãŸã‚) */ class CBregexp : public CBregexpDll2{ public: CBregexp(); virtual ~CBregexp(); - // 2006.01.22 ‚©‚ë‚Æ ƒIƒvƒVƒ‡ƒ“’ljÁE–¼Ì•ÏX + // 2006.01.22 ã‹ã‚㨠オプション追加・å称変更 enum Option { - optNothing = 0, //!< ƒIƒvƒVƒ‡ƒ“‚È‚µ - optCaseSensitive = 1, //!< ‘啶Žš¬•¶Žš‹æ•ÊƒIƒvƒVƒ‡ƒ“(/i‚ð‚‚¯‚È‚¢) - optGlobal = 2, //!< ‘SˆæƒIƒvƒVƒ‡ƒ“(/g) - optExtend = 4, //!< Šg’£³‹K•\Œ»(/x) + optNothing = 0, //!< オプションãªã— + optCaseSensitive = 1, //!< 大文字å°æ–‡å­—区別オプション(/iã‚’ã¤ã‘ãªã„) + optGlobal = 2, //!< 全域オプション(/g) + optExtend = 4, //!< 拡張正è¦è¡¨ç¾(/x) optASCII = 8, //!< ASCII(/a) optUnicode = 0x10, //!< Unicode(/u) optDefault = 0x20, //!< Default(/d) optLocale = 0x40, //!< Locale(/l) optR = 0x80, //!< CRLF(/R) }; - //! ŒŸõƒpƒ^[ƒ“’è‹` + //! 検索パターン定義 enum Pattern { - PAT_UNKNOWN = 0, //!< •s–¾i‰Šú’l) - PAT_NORMAL = 1, //!< ’Êí - PAT_TOP = 2, //!< s“ª"^" - PAT_BOTTOM = 4, //!< s––"$" - PAT_TAB = 8, //!< s“ªs––"^$" - PAT_LOOKAHEAD = 16 //!< æ“Ç‚Ý"(?[=]" + PAT_UNKNOWN = 0, //!< ä¸æ˜Žï¼ˆåˆæœŸå€¤) + PAT_NORMAL = 1, //!< 通常 + PAT_TOP = 2, //!< 行頭"^" + PAT_BOTTOM = 4, //!< 行末"$" + PAT_TAB = 8, //!< 行頭行末"^$" + PAT_LOOKAHEAD = 16 //!< 先読ã¿"(?[=]" }; - //! DLL‚̃o[ƒWƒ‡ƒ“î•ñ‚ðŽæ“¾ + //! DLLã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…報をå–å¾— const TCHAR* GetVersionT(){ return IsAvailable() ? to_tchar(BRegexpVersion()) : _T(""); } - // CJreƒGƒ~ƒ…ƒŒ[ƒVƒ‡ƒ“ŠÖ” - //! ŒŸõƒpƒ^[ƒ“‚̃Rƒ“ƒpƒCƒ‹ - // 2002/01/19 novice ³‹K•\Œ»‚É‚æ‚镶Žš—ñ’uŠ· - // 2002.01.26 hor ’uŠ·Œã•¶Žš—ñ‚ð•Êˆø”‚É - // 2002.02.01 hor ‘啶Žš¬•¶Žš‚𖳎‹‚·‚éƒIƒvƒVƒ‡ƒ“’ljÁ - //>> 2002/03/27 Azumaiya ³‹K•\Œ»’uŠ·‚ɃRƒ“ƒpƒCƒ‹ŠÖ”‚ðŽg‚¤Œ`Ž®‚ð’ljÁ + // CJreエミュレーション関数 + //! 検索パターンã®ã‚³ãƒ³ãƒ‘イル + // 2002/01/19 novice æ­£è¦è¡¨ç¾ã«ã‚ˆã‚‹æ–‡å­—åˆ—ç½®æ› + // 2002.01.26 hor ç½®æ›å¾Œæ–‡å­—列を別引数㫠+ // 2002.02.01 hor 大文字å°æ–‡å­—を無視ã™ã‚‹ã‚ªãƒ—ション追加 + //>> 2002/03/27 Azumaiya æ­£è¦è¡¨ç¾ç½®æ›ã«ã‚³ãƒ³ãƒ‘イル関数を使ã†å½¢å¼ã‚’追加 bool Compile(const wchar_t *szPattern, int nOption = 0) { return Compile(szPattern, NULL, nOption); } - bool Compile(const wchar_t *szPattern0, const wchar_t *szPattern1, int nOption = 0, bool bKakomi = false); //!< Replace—p - bool Match(const wchar_t *szTarget, int nLen, int nStart = 0); //!< ŒŸõ‚ðŽÀs‚·‚é - int Replace(const wchar_t *szTarget, int nLen, int nStart = 0); //!< ’uŠ·‚ðŽÀs‚·‚é // 2007.01.16 ryoji –ß‚è’l‚ð’uŠ·ŒÂ”‚É•ÏX + bool Compile(const wchar_t *szPattern0, const wchar_t *szPattern1, int nOption = 0, bool bKakomi = false); //!< Replace用 + bool Match(const wchar_t *szTarget, int nLen, int nStart = 0); //!< 検索を実行ã™ã‚‹ + int Replace(const wchar_t *szTarget, int nLen, int nStart = 0); //!< ç½®æ›ã‚’実行ã™ã‚‹ // 2007.01.16 ryoji 戻り値を置æ›å€‹æ•°ã«å¤‰æ›´ //----------------------------------------- - // 2005.03.19 ‚©‚ë‚Æ ƒNƒ‰ƒX“à•”‚ð‰B•Á + // 2005.03.19 ã‹ã‚㨠クラス内部を隠蔽 /*! @{ - @name Œ‹‰Ê‚𓾂郃\ƒbƒh‚ð’ljÁ‚µABREGEXP‚ðŠO•”‚©‚ç‰B‚· + @name çµæžœã‚’得るメソッドを追加ã—ã€BREGEXPを外部ã‹ã‚‰éš ã™ */ /*! - ŒŸõ‚Ɉê’v‚µ‚½•¶Žš—ñ‚Ì擪ˆÊ’u‚ð•Ô‚·(•¶Žš—ñ擪‚È‚ç0) - @retval ŒŸõ‚Ɉê’v‚µ‚½•¶Žš—ñ‚Ì擪ˆÊ’u + 検索ã«ä¸€è‡´ã—ãŸæ–‡å­—列ã®å…ˆé ­ä½ç½®ã‚’è¿”ã™(文字列先頭ãªã‚‰0) + @retval 検索ã«ä¸€è‡´ã—ãŸæ–‡å­—列ã®å…ˆé ­ä½ç½® */ CLogicInt GetIndex(void) { return CLogicInt(m_pRegExp->startp[0] - m_szTarget); } /*! - ŒŸõ‚Ɉê’v‚µ‚½•¶Žš—ñ‚ÌŽŸ‚̈ʒu‚ð•Ô‚· - @retval ŒŸõ‚Ɉê’v‚µ‚½•¶Žš—ñ‚ÌŽŸ‚̈ʒu + 検索ã«ä¸€è‡´ã—ãŸæ–‡å­—列ã®æ¬¡ã®ä½ç½®ã‚’返㙠+ @retval 検索ã«ä¸€è‡´ã—ãŸæ–‡å­—列ã®æ¬¡ã®ä½ç½® */ CLogicInt GetLastIndex(void) { return CLogicInt(m_pRegExp->endp[0] - m_szTarget); } /*! - ŒŸõ‚Ɉê’v‚µ‚½•¶Žš—ñ‚Ì’·‚³‚ð•Ô‚· - @retval ŒŸõ‚Ɉê’v‚µ‚½•¶Žš—ñ‚Ì’·‚³ + 検索ã«ä¸€è‡´ã—ãŸæ–‡å­—列ã®é•·ã•ã‚’返㙠+ @retval 検索ã«ä¸€è‡´ã—ãŸæ–‡å­—列ã®é•·ã• */ CLogicInt GetMatchLen(void) { return CLogicInt(m_pRegExp->endp[0] - m_pRegExp->startp[0]); } /*! - ’uŠ·‚³‚ꂽ•¶Žš—ñ‚Ì’·‚³‚ð•Ô‚· - @retval ’uŠ·‚³‚ꂽ•¶Žš—ñ‚Ì’·‚³ + ç½®æ›ã•ã‚ŒãŸæ–‡å­—列ã®é•·ã•ã‚’返㙠+ @retval ç½®æ›ã•ã‚ŒãŸæ–‡å­—列ã®é•·ã• */ CLogicInt GetStringLen(void) { - // ’uŠ·Œã•¶Žš—ñ‚ª‚O•‚È‚ç outpAoutendp‚àNULL‚É‚È‚é - // NULLƒ|ƒCƒ“ƒ^‚̈ø‚«ŽZ‚Í–â‘è‚È‚­‚O‚É‚È‚éB - // outendp‚Í '\0'‚È‚Ì‚ÅA•¶Žš—ñ’·‚Í +1•s—v + // ç½®æ›å¾Œæ–‡å­—列ãŒï¼å¹…ãªã‚‰ outpã€outendpã‚‚NULLã«ãªã‚‹ + // NULLãƒã‚¤ãƒ³ã‚¿ã®å¼•ãç®—ã¯å•é¡Œãªãï¼ã«ãªã‚‹ã€‚ + // outendp㯠'\0'ãªã®ã§ã€æ–‡å­—列長㯠+1ä¸è¦ // Jun. 03, 2005 Karoto - // ’uŠ·Œã•¶Žš—ñ‚ª0•‚ÌꇂÉoutp‚ªNULL‚Å‚àoutendp‚ªNULL‚Å‚È‚¢ê‡‚ª‚ ‚é‚Ì‚ÅC - // outp‚ÌNULLƒ`ƒFƒbƒN‚ª•K—v + // ç½®æ›å¾Œæ–‡å­—列ãŒ0å¹…ã®å ´åˆã«outpãŒNULLã§ã‚‚outendpãŒNULLã§ãªã„å ´åˆãŒã‚ã‚‹ã®ã§ï¼Œ + // outpã®NULLãƒã‚§ãƒƒã‚¯ãŒå¿…è¦ if (m_pRegExp->outp == NULL) { return CLogicInt(0); @@ -154,8 +154,8 @@ class CBregexp : public CBregexpDll2{ } } /*! - ’uŠ·‚³‚ꂽ•¶Žš—ñ‚ð•Ô‚· - @retval ’uŠ·‚³‚ꂽ•¶Žš—ñ‚ւ̃|ƒCƒ“ƒ^ + ç½®æ›ã•ã‚ŒãŸæ–‡å­—列を返㙠+ @retval ç½®æ›ã•ã‚ŒãŸæ–‡å­—列ã¸ã®ãƒã‚¤ãƒ³ã‚¿ */ const wchar_t *GetString(void) { @@ -164,23 +164,23 @@ class CBregexp : public CBregexpDll2{ /*! @} */ //----------------------------------------- - /*! BREGEXPƒƒbƒZ[ƒW‚ðŽæ“¾‚·‚é - @retval ƒƒbƒZ[ƒW‚ւ̃|ƒCƒ“ƒ^ + /*! BREGEXPメッセージをå–å¾—ã™ã‚‹ + @retval メッセージã¸ã®ãƒã‚¤ãƒ³ã‚¿ */ const TCHAR* GetLastMessage() const;// { return m_szMsg; } - /*! æ“ǂ݃pƒ^[ƒ“‚ª‘¶Ý‚·‚é‚©‚ð•Ô‚· - ‚±‚ÌŠÖ”‚ÍAƒRƒ“ƒpƒCƒ‹Œã‚Å‚ ‚邱‚Æ‚ª‘O’ñ‚È‚Ì‚ÅAƒRƒ“ƒpƒCƒ‹‘O‚Ífalse - @retval true æ“Ç‚Ý‚ª‚ ‚é - @retval false æ“Ç‚Ý‚ª‚È‚¢ –”‚Í ƒRƒ“ƒpƒCƒ‹‘O + /*! 先読ã¿ãƒ‘ターンãŒå­˜åœ¨ã™ã‚‹ã‹ã‚’返㙠+ ã“ã®é–¢æ•°ã¯ã€ã‚³ãƒ³ãƒ‘イル後ã§ã‚ã‚‹ã“ã¨ãŒå‰æãªã®ã§ã€ã‚³ãƒ³ãƒ‘イルå‰ã¯false + @retval true 先読ã¿ãŒã‚ã‚‹ + @retval false 先読ã¿ãŒãªã„ åˆã¯ ã‚³ãƒ³ãƒ‘ã‚¤ãƒ«å‰ */ bool IsLookAhead(void) { return m_ePatType & PAT_LOOKAHEAD ? true : false; } - /*! ŒŸõƒpƒ^[ƒ“‚Éæ“Ç‚Ý‚ªŠÜ‚Ü‚ê‚é‚©HiƒRƒ“ƒpƒCƒ‹‘O‚Å‚à”»•Ê‰Â”\j - @param[in] pattern ŒŸõƒpƒ^[ƒ“ - @retval true æ“Ç‚Ý‚ª‚ ‚é - @retval false æ“Ç‚Ý‚ª‚È‚¢ + /*! 検索パターンã«å…ˆèª­ã¿ãŒå«ã¾ã‚Œã‚‹ã‹ï¼Ÿï¼ˆã‚³ãƒ³ãƒ‘イルå‰ã§ã‚‚判別å¯èƒ½ï¼‰ + @param[in] pattern 検索パターン + @retval true 先読ã¿ãŒã‚ã‚‹ + @retval false 先読ã¿ãŒãªã„ */ bool IsLookAhead(const wchar_t *pattern) { CheckPattern(pattern); @@ -190,10 +190,10 @@ class CBregexp : public CBregexpDll2{ protected: - //! ƒRƒ“ƒpƒCƒ‹ƒoƒbƒtƒ@‚ð‰ð•ú‚·‚é + //! コンパイルãƒãƒƒãƒ•ã‚¡ã‚’解放ã™ã‚‹ /*! - m_pcReg‚ðBRegfree()‚É“n‚µ‚ĉð•ú‚·‚éD‰ð•úŒã‚ÍNULL‚ɃZƒbƒg‚·‚éD - Œ³XNULL‚Ȃ牽‚à‚µ‚È‚¢ + m_pcRegã‚’BRegfree()ã«æ¸¡ã—ã¦è§£æ”¾ã™ã‚‹ï¼Žè§£æ”¾å¾Œã¯NULLã«ã‚»ãƒƒãƒˆã™ã‚‹ï¼Ž + 元々NULLãªã‚‰ä½•ã‚‚ã—ãªã„ */ void ReleaseCompileBuffer(void){ if( m_pRegExp ){ @@ -204,29 +204,29 @@ class CBregexp : public CBregexpDll2{ } private: - // “à•”ŠÖ” + // 内部関数 - //! ŒŸõƒpƒ^[ƒ“ì¬ + //! æ¤œç´¢ãƒ‘ã‚¿ãƒ¼ãƒ³ä½œæˆ int CheckPattern( const wchar_t* szPattern ); wchar_t* MakePatternSub( const wchar_t* szPattern, const wchar_t* szPattern2, const wchar_t* szAdd2, int nOption ); wchar_t* MakePattern( const wchar_t* szPattern, const wchar_t* szPattern2, int nOption ); wchar_t* MakePatternAlternate( const wchar_t* const szSearch, const wchar_t* const szReplace, int nOption ); - // ƒƒ“ƒo•Ï” - BREGEXP_W* m_pRegExp; //!< ƒRƒ“ƒpƒCƒ‹\‘¢‘Ì - int m_ePatType; //!< ŒŸõ•¶Žš—ñƒpƒ^[ƒ“Ží•Ê - const wchar_t* m_szTarget; //!< ‘ÎÛ•¶Žš—ñ‚ւ̃|ƒCƒ“ƒ^ - wchar_t m_szMsg[80]; //!< BREGEXP_W‚©‚ç‚̃ƒbƒZ[ƒW‚ð•ÛŽ‚·‚é + // メンãƒå¤‰æ•° + BREGEXP_W* m_pRegExp; //!< コンパイル構造体 + int m_ePatType; //!< 検索文字列パターン種別 + const wchar_t* m_szTarget; //!< 対象文字列ã¸ã®ãƒã‚¤ãƒ³ã‚¿ + wchar_t m_szMsg[80]; //!< BREGEXP_Wã‹ã‚‰ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’ä¿æŒã™ã‚‹ - // ÓIƒƒ“ƒo•Ï” - static const wchar_t m_tmpBuf[2]; //!< ƒ_ƒ~[•¶Žš—ñ + // é™çš„メンãƒå¤‰æ•° + static const wchar_t m_tmpBuf[2]; //!< ダミー文字列 }; // Jun. 26, 2001 genta -//! ³‹K•\Œ»ƒ‰ƒCƒuƒ‰ƒŠ‚̃o[ƒWƒ‡ƒ“Žæ“¾ +//! æ­£è¦è¡¨ç¾ãƒ©ã‚¤ãƒ–ラリã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³å–å¾— bool CheckRegexpVersion( HWND hWnd, int nCmpId, bool bShowMsg = false ); -bool CheckRegexpSyntax( const wchar_t* szPattern, HWND hWnd, bool bShowMessage, int nOption = -1, bool bKakomi = false );// 2002/2/1 hor’ljÁ +bool CheckRegexpSyntax( const wchar_t* szPattern, HWND hWnd, bool bShowMessage, int nOption = -1, bool bKakomi = false );// 2002/2/1 hor追加 bool InitRegexp( HWND hWnd, CBregexp& rRegexp, bool bShowMessage ); diff --git a/sakura_core/extmodule/CBregexpDll2.cpp b/sakura_core/extmodule/CBregexpDll2.cpp index 620fa68a32..56bb81a6b2 100644 --- a/sakura_core/extmodule/CBregexpDll2.cpp +++ b/sakura_core/extmodule/CBregexpDll2.cpp @@ -1,4 +1,4 @@ -/* +/* Copyright (C) 2008, kobake This software is provided 'as-is', without any express or implied @@ -33,11 +33,11 @@ CBregexpDll2::~CBregexpDll2() } /*! - @date 2001.07.05 genta ˆø”’ljÁB‚½‚¾‚µA‚±‚±‚Å‚ÍŽg‚í‚È‚¢B - @date 2007.06.25 genta •¡”‚ÌDLL–¼‚ɑΉž - @date 2007.09.13 genta ƒT[ƒ`ƒ‹[ƒ‹‚ð•ÏX - @li Žw’è—L‚è‚Ìꇂ͂»‚ê‚Ì‚Ý‚ð•Ô‚· - @li Žw’è–³‚µ(NULL‚Ü‚½‚͋󕶎š—ñ)‚ÌꇂÍBREGONIG, BREGEXP‚̇‚ÅŽŽ‚Ý‚é + @date 2001.07.05 genta 引数追加。ãŸã ã—ã€ã“ã“ã§ã¯ä½¿ã‚ãªã„。 + @date 2007.06.25 genta 複数ã®DLLåã«å¯¾å¿œ + @date 2007.09.13 genta サーãƒãƒ«ãƒ¼ãƒ«ã‚’変更 + @li 指定有りã®å ´åˆã¯ãã‚Œã®ã¿ã‚’返㙠+ @li 指定無ã—(NULLã¾ãŸã¯ç©ºæ–‡å­—列)ã®å ´åˆã¯BREGONIG, BREGEXPã®é †ã§è©¦ã¿ã‚‹ */ LPCTSTR CBregexpDll2::GetDllNameImp( int index ) { @@ -46,16 +46,16 @@ LPCTSTR CBregexpDll2::GetDllNameImp( int index ) /*! - DLL‚̉Šú‰» + DLLã®åˆæœŸåŒ– - ŠÖ”‚̃AƒhƒŒƒX‚ðŽæ“¾‚µ‚ăƒ“ƒo‚É•ÛŠÇ‚·‚éD + 関数ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’å–å¾—ã—ã¦ãƒ¡ãƒ³ãƒã«ä¿ç®¡ã™ã‚‹ï¼Ž - @retval true ¬Œ÷ - @retval false ƒAƒhƒŒƒXŽæ“¾‚ÉŽ¸”s + @retval true æˆåŠŸ + @retval false アドレスå–å¾—ã«å¤±æ•— */ bool CBregexpDll2::InitDllImp() { - //DLL“àŠÖ”–¼ƒŠƒXƒg + //DLL内関数åリスト const ImportTable table[] = { { &m_BMatch, "BMatchW" }, { &m_BSubst, "BSubstW" }, diff --git a/sakura_core/extmodule/CBregexpDll2.h b/sakura_core/extmodule/CBregexpDll2.h index c2b9cf7669..4894daa0af 100644 --- a/sakura_core/extmodule/CBregexpDll2.h +++ b/sakura_core/extmodule/CBregexpDll2.h @@ -1,4 +1,4 @@ -/* +/* Copyright (C) 2008, kobake This software is provided 'as-is', without any express or implied @@ -40,20 +40,20 @@ typedef struct bregexp { int nparens; /* number of parentheses */ } BREGEXP_W; -//!BREGONIG.DLL‚ðƒ‰ƒbƒv‚µ‚½‚à‚ÌB -//2007.09.13 kobake ì¬ +//!BREGONIG.DLLをラップã—ãŸã‚‚ã®ã€‚ +//2007.09.13 kobake ä½œæˆ class CBregexpDll2 : public CDllImp{ public: CBregexpDll2(); virtual ~CBregexpDll2(); protected: - // CDllImpƒCƒ“ƒ^ƒtƒF[ƒX - virtual LPCTSTR GetDllNameImp(int nIndex); // Jul. 5, 2001 genta ƒCƒ“ƒ^[ƒtƒF[ƒX•ÏX‚É”º‚¤ˆø”’ljÁ + // CDllImpインタフェース + virtual LPCTSTR GetDllNameImp(int nIndex); // Jul. 5, 2001 genta インターフェース変更ã«ä¼´ã†å¼•æ•°è¿½åŠ  virtual bool InitDllImp(); protected: - // DLLŠÖ”‚ÌŒ^ + // DLL関数ã®åž‹ typedef int (__cdecl *BREGEXP_BMatchW2) (const wchar_t* str, const wchar_t* target, const wchar_t* targetendp, BREGEXP_W** rxp, wchar_t* msg); typedef int (__cdecl *BREGEXP_BSubstW2) (const wchar_t* str, const wchar_t* target, const wchar_t* targetendp, BREGEXP_W** rxp, wchar_t* msg); typedef int (__cdecl *BREGEXP_BTransW2) (const wchar_t* str, wchar_t* target, wchar_t* targetendp, BREGEXP_W** rxp, wchar_t* msg); @@ -64,7 +64,7 @@ class CBregexpDll2 : public CDllImp{ typedef int (__cdecl *BREGEXP_BSubstExW2) (const wchar_t* str, const wchar_t* targetbeg, const wchar_t* target, const wchar_t* targetendp, BREGEXP_W** rxp, wchar_t* msg); public: - // UNICODEƒCƒ“ƒ^[ƒtƒF[ƒX‚ð’ñ‹Ÿ‚·‚é + // UNICODEインターフェースをæä¾›ã™ã‚‹ int BMatch(const wchar_t* str, const wchar_t* target,const wchar_t* targetendp,BREGEXP_W** rxp,wchar_t* msg) { return m_BMatch(str,target,targetendp,rxp,msg); @@ -98,12 +98,12 @@ class CBregexpDll2 : public CDllImp{ return m_BSubstEx(str,targetbeg,target,targetendp,rxp,msg); } - // ŠÖ”‚ª‚ ‚é‚©‚Ç‚¤‚© + // 関数ãŒã‚ã‚‹ã‹ã©ã†ã‹ bool ExistBMatchEx() const{ return m_BMatchEx!=NULL; } bool ExistBSubstEx() const{ return m_BSubstEx!=NULL; } private: - //DLL“àŠÖ”ƒ|ƒCƒ“ƒ^ + //DLL内関数ãƒã‚¤ãƒ³ã‚¿ BREGEXP_BMatchW2 m_BMatch; BREGEXP_BSubstW2 m_BSubst; BREGEXP_BTransW2 m_BTrans; diff --git a/sakura_core/extmodule/CDllHandler.cpp b/sakura_core/extmodule/CDllHandler.cpp index 1f097640fa..60f3da15ad 100644 --- a/sakura_core/extmodule/CDllHandler.cpp +++ b/sakura_core/extmodule/CDllHandler.cpp @@ -1,5 +1,5 @@ -/*! @file - @brief DLL‚̃[ƒhAƒAƒ“ƒ[ƒh +/*! @file + @brief DLLã®ãƒ­ãƒ¼ãƒ‰ã€ã‚¢ãƒ³ãƒ­ãƒ¼ãƒ‰ @author genta @date Jun. 10, 2001 @@ -33,7 +33,7 @@ #include "util/module.h" // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- // -// ¶¬‚Æ”jŠü // +// 生æˆã¨ç ´æ£„ // // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- // CDllImp::CDllImp() @@ -42,7 +42,7 @@ CDllImp::CDllImp() } /*! - ƒIƒuƒWƒFƒNƒgÁ–Å‘O‚ÉDLL‚ª“Ç‚Ýž‚܂ꂽó‘Ô‚Å‚ ‚ê‚ÎDLL‚̉ð•ú‚ðs‚¤D + オブジェクト消滅å‰ã«DLLãŒèª­ã¿è¾¼ã¾ã‚ŒãŸçŠ¶æ…‹ã§ã‚ã‚Œã°DLLã®è§£æ”¾ã‚’è¡Œã†ï¼Ž */ CDllImp::~CDllImp() { @@ -52,50 +52,50 @@ CDllImp::~CDllImp() } // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- // -// DLLƒ[ƒh // +// DLLロード // // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- // EDllResult CDllImp::InitDll(LPCTSTR pszSpecifiedDllName) { if( IsAvailable() ){ - // Šù‚É—˜—p‰Â”\‚Å—L‚ê‚Ή½‚à‚µ‚È‚¢D + // æ—¢ã«åˆ©ç”¨å¯èƒ½ã§æœ‰ã‚Œã°ä½•ã‚‚ã—ãªã„. return DLL_SUCCESS; } - //–¼‘OŒó•â‚ð‡ŽŸŒŸØ‚µA—LŒø‚È‚à‚Ì‚ðÌ—p‚·‚é + //åå‰å€™è£œã‚’順次検証ã—ã€æœ‰åŠ¹ãªã‚‚ã®ã‚’採用ã™ã‚‹ LPCTSTR pszLastName = NULL; bool bInitImpFailure = false; for(int i = -1; ;i++) { - //–¼‘OŒó•â + //åå‰å€™è£œ LPCTSTR pszName = NULL; - if(i==-1){ //‚Ü‚¸‚͈ø”‚ÅŽw’肳‚ꂽ–¼‘O‚©‚çB + if(i==-1){ //ã¾ãšã¯å¼•æ•°ã§æŒ‡å®šã•ã‚ŒãŸåå‰ã‹ã‚‰ã€‚ pszName = pszSpecifiedDllName; } - else{ //ƒNƒ‰ƒX’è‹`‚ÌDLL–¼ + else{ //クラス定義ã®DLLå pszName = GetDllNameImp(i); - //GetDllNameImp‚©‚çŽæ“¾‚µ‚½–¼‘O‚ª–³Œø‚Ȃ烋[ƒv‚𔲂¯‚é + //GetDllNameImpã‹ã‚‰å–å¾—ã—ãŸåå‰ãŒç„¡åŠ¹ãªã‚‰ãƒ«ãƒ¼ãƒ—を抜ã‘ã‚‹ if(!pszName || !pszName[0]){ break; } - //GetDllNameImp‚©‚çŽæ“¾‚µ‚½–¼‘O‚ª‘O‰ñŒó•â‚Æ“¯‚¶‚Ȃ烋[ƒv‚𔲂¯‚é + //GetDllNameImpã‹ã‚‰å–å¾—ã—ãŸåå‰ãŒå‰å›žå€™è£œã¨åŒã˜ãªã‚‰ãƒ«ãƒ¼ãƒ—を抜ã‘ã‚‹ if(pszLastName && _tcsicmp(pszLastName,pszName)==0){ break; } } pszLastName = pszName; - //–¼‘O‚ª–³Œø‚ÌꇂÍAŽŸ‚Ì–¼‘OŒó•â‚ðŽŽ‚·B + //åå‰ãŒç„¡åŠ¹ã®å ´åˆã¯ã€æ¬¡ã®åå‰å€™è£œã‚’試ã™ã€‚ if(!pszName || !pszName[0])continue; - //DLLƒ[ƒhBƒ[ƒh‚Å‚«‚È‚©‚Á‚½‚玟‚Ì–¼‘OŒó•â‚ðŽŽ‚·B + //DLLロード。ロードã§ããªã‹ã£ãŸã‚‰æ¬¡ã®åå‰å€™è£œã‚’試ã™ã€‚ m_hInstance = LoadLibraryExedir(pszName); if(!m_hInstance)continue; - //‰Šúˆ— + //åˆæœŸå‡¦ç† bool ret = InitDllImp(); - //‰Šúˆ—‚ÉŽ¸”s‚µ‚½ê‡‚ÍDLL‚ð‰ð•ú‚µAŽŸ‚Ì–¼‘OŒó•â‚ðŽŽ‚·B + //åˆæœŸå‡¦ç†ã«å¤±æ•—ã—ãŸå ´åˆã¯DLLを解放ã—ã€æ¬¡ã®åå‰å€™è£œã‚’試ã™ã€‚ if(!ret){ bInitImpFailure = true; ::FreeLibrary( m_hInstance ); @@ -103,43 +103,43 @@ EDllResult CDllImp::InitDll(LPCTSTR pszSpecifiedDllName) continue; } - //‰Šúˆ—‚ɬŒ÷‚µ‚½ê‡‚ÍADLL–¼‚ð•Û‘¶‚µAƒ‹[ƒv‚𔲂¯‚é + //åˆæœŸå‡¦ç†ã«æˆåŠŸã—ãŸå ´åˆã¯ã€DLLåã‚’ä¿å­˜ã—ã€ãƒ«ãƒ¼ãƒ—を抜ã‘ã‚‹ if(ret){ m_strLoadedDllName = pszName; break; } } - //ƒ[ƒh‚ƉŠúˆ—‚ɬŒ÷‚È‚ç + //ロードã¨åˆæœŸå‡¦ç†ã«æˆåŠŸãªã‚‰ if(IsAvailable()){ return DLL_SUCCESS; } - //‰Šúˆ—‚ÉŽ¸”s‚µ‚½‚±‚Æ‚ª‚ ‚Á‚½‚ç + //åˆæœŸå‡¦ç†ã«å¤±æ•—ã—ãŸã“ã¨ãŒã‚ã£ãŸã‚‰ else if(bInitImpFailure){ - return DLL_INITFAILURE; //DLLƒ[ƒh‚Í‚Å‚«‚½‚¯‚ÇA‚»‚̉Šúˆ—‚ÉŽ¸”s + return DLL_INITFAILURE; //DLLロードã¯ã§ããŸã‘ã©ã€ãã®åˆæœŸå‡¦ç†ã«å¤±æ•— } - //‚»‚êˆÈŠO + //ãれ以外 else{ - return DLL_LOADFAILURE; //DLLƒ[ƒhŽ©‘Ì‚ÉŽ¸”s + return DLL_LOADFAILURE; //DLLロード自体ã«å¤±æ•— } } bool CDllImp::DeinitDll(bool force) { if( m_hInstance == NULL || (!IsAvailable()) ){ - // DLL‚ª“Ç‚Ýž‚Ü‚ê‚Ä‚¢‚È‚¯‚ê‚Ή½‚à‚µ‚È‚¢ + // DLLãŒèª­ã¿è¾¼ã¾ã‚Œã¦ã„ãªã‘ã‚Œã°ä½•ã‚‚ã—ãªã„ return true; } - //I—¹ˆ— + //çµ‚äº†å‡¦ç† bool ret = DeinitDllImp(); - //DLL‰ð•ú + //DLL解放 if( ret || force ){ - //DLL–¼‚ð‰ð•ú + //DLLåを解放 m_strLoadedDllName = _T(""); - //DLL‰ð•ú + //DLL解放 ::FreeLibrary( m_hInstance ); m_hInstance = NULL; @@ -152,7 +152,7 @@ bool CDllImp::DeinitDll(bool force) // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- // -// ‘®« // +// 属性 // // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- // LPCTSTR CDllImp::GetLoadedDllName() const @@ -162,11 +162,11 @@ LPCTSTR CDllImp::GetLoadedDllName() const // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- // -// ƒI[ƒo[ƒ[ƒh‰Â”\ŽÀ‘• // +// オーãƒãƒ¼ãƒ­ãƒ¼ãƒ‰å¯èƒ½å®Ÿè£… // // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- // /*! - ŽÀ‘•‚ðÈ—ª‚Å‚«‚é‚悤‚É‚·‚邽‚ßA‹ó‚ÌŠÖ”‚ð—pˆÓ‚µ‚Ä‚¨‚­ + 実装をçœç•¥ã§ãるよã†ã«ã™ã‚‹ãŸã‚ã€ç©ºã®é–¢æ•°ã‚’用æ„ã—ã¦ãŠã */ bool CDllImp::DeinitDllImp() { @@ -175,16 +175,16 @@ bool CDllImp::DeinitDllImp() // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- // -// ŽÀ‘••â• // +// 実装補助 // // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- // /*! - ƒe[ƒuƒ‹‚Å—^‚¦‚ç‚ꂽƒGƒ“ƒgƒŠƒ|ƒCƒ“ƒ^ƒAƒhƒŒƒX‚ð“ü‚ê‚éêŠ‚É - ‘Ήž‚·‚镶Žš—ñ‚©‚ç’²‚ׂ½ƒGƒ“ƒgƒŠƒ|ƒCƒ“ƒ^‚ðÝ’è‚·‚éB + テーブルã§ä¸Žãˆã‚‰ã‚ŒãŸã‚¨ãƒ³ãƒˆãƒªãƒã‚¤ãƒ³ã‚¿ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’入れる場所㫠+ 対応ã™ã‚‹æ–‡å­—列ã‹ã‚‰èª¿ã¹ãŸã‚¨ãƒ³ãƒˆãƒªãƒã‚¤ãƒ³ã‚¿ã‚’設定ã™ã‚‹ã€‚ - @param table [in] –¼‘O‚ƃAƒhƒŒƒX‚̑Ήž•\BÅŒã‚Í{NULL,0}‚ÅI‚í‚邱‚ÆB - @retval true ‘S‚ẴAƒhƒŒƒX‚ªÝ’肳‚ꂽB - @retval false ƒAƒhƒŒƒX‚̎擾‚ÉŽ¸”s‚µ‚½ŠÖ”‚ª‚ ‚Á‚½B + @param table [in] åå‰ã¨ã‚¢ãƒ‰ãƒ¬ã‚¹ã®å¯¾å¿œè¡¨ã€‚最後ã¯{NULL,0}ã§çµ‚ã‚ã‚‹ã“ã¨ã€‚ + @retval true å…¨ã¦ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒè¨­å®šã•ã‚ŒãŸã€‚ + @retval false アドレスã®å–å¾—ã«å¤±æ•—ã—ãŸé–¢æ•°ãŒã‚ã£ãŸã€‚ */ bool CDllImp::RegisterEntries(const ImportTable table[]) { diff --git a/sakura_core/extmodule/CDllHandler.h b/sakura_core/extmodule/CDllHandler.h index 488db4632b..c216dcf929 100644 --- a/sakura_core/extmodule/CDllHandler.h +++ b/sakura_core/extmodule/CDllHandler.h @@ -1,5 +1,5 @@ -/*! @file - @brief DLL‚̃[ƒhAƒAƒ“ƒ[ƒh +/*! @file + @brief DLLã®ãƒ­ãƒ¼ãƒ‰ã€ã‚¢ãƒ³ãƒ­ãƒ¼ãƒ‰ @author genta @date Jun. 10, 2001 @@ -36,14 +36,14 @@ #include #include "_main/global.h" -/*! CDllImp ‚ðƒ‰ƒbƒv - CDllImp::DeinitDll ‚ðŒÄ‚Ñ–Y‚ê‚È‚¢‚½‚߂̃wƒ‹ƒp“IƒNƒ‰ƒXB - ¡‚Ì‚Æ‚±‚ëDeinitDll‚ªŽg‚í‚ê‚Ä‚¢‚é‰ÓŠ‚ª–³‚¢‚Ì‚ÅA‚±‚̃Nƒ‰ƒX‚Ìo”Ô‚Í‚ ‚è‚Ü‚¹‚ñ‚ªB - 2008.05.10 kobake ì¬ +/*! CDllImp をラップ + CDllImp::DeinitDll を呼ã³å¿˜ã‚Œãªã„ãŸã‚ã®ãƒ˜ãƒ«ãƒ‘的クラス。 + 今ã®ã¨ã“ã‚DeinitDllãŒä½¿ã‚ã‚Œã¦ã„る箇所ãŒç„¡ã„ã®ã§ã€ã“ã®ã‚¯ãƒ©ã‚¹ã®å‡ºç•ªã¯ã‚ã‚Šã¾ã›ã‚“ãŒã€‚ + 2008.05.10 kobake ä½œæˆ */ template class CDllHandler{ public: - //ƒRƒ“ƒXƒgƒ‰ƒNƒ^EƒfƒXƒgƒ‰ƒNƒ^ + //コンストラクタ・デストラクタ CDllHandler() { m_pcDllImp = new DLLIMP(); @@ -51,14 +51,14 @@ template class CDllHandler{ } ~CDllHandler() { - m_pcDllImp->DeinitDll(true); //¦I—¹ˆ—‚ÉŽ¸”s‚µ‚Ä‚à‹­§“I‚ÉDLL‰ð•ú + m_pcDllImp->DeinitDll(true); //※終了処ç†ã«å¤±æ•—ã—ã¦ã‚‚強制的ã«DLL解放 delete m_pcDllImp; } - //ƒAƒNƒZƒT + //アクセサ DLLIMP* operator->(){ return m_pcDllImp; } - //! —˜—pó‘Ԃ̃`ƒFƒbƒNioperator”Åj + //! 利用状態ã®ãƒã‚§ãƒƒã‚¯ï¼ˆoperator版) bool operator!() const { return m_pcDllImp->IsAvailable(); } private: @@ -66,32 +66,32 @@ template class CDllHandler{ }; -//!Œ‹‰Ê’è” +//!çµæžœå®šæ•° enum EDllResult{ - DLL_SUCCESS, //¬Œ÷ - DLL_LOADFAILURE, //DLLƒ[ƒhŽ¸”s - DLL_INITFAILURE, //‰Šúˆ—‚ÉŽ¸”s + DLL_SUCCESS, //æˆåŠŸ + DLL_LOADFAILURE, //DLLロード失敗 + DLL_INITFAILURE, //åˆæœŸå‡¦ç†ã«å¤±æ•— }; -//! DLL‚Ì“®“I‚ÈLoad/Unload‚ðs‚¤‚½‚߂̃Nƒ‰ƒX +//! DLLã®å‹•çš„ãªLoad/Unloadã‚’è¡Œã†ãŸã‚ã®ã‚¯ãƒ©ã‚¹ /*! @author genta @date Jun. 10, 2001 genta - @date 2001.07.05 genta InitDll: ˆø”’ljÁBƒpƒX‚ÌŽw’è‚È‚Ç‚ÉŽg‚¦‚é - @date Apr. 15, 2002 genta RegisterEntries‚̒ljÁB - @date 2007.06.25 genta InitDll: GetDllNameImp‚ðŽg‚¤‚悤‚ÉŽÀ‘•‚ð•ÏXD - @date 2001.07.05 genta GetDllName: ˆø”’ljÁBƒpƒX‚ÌŽw’è‚È‚Ç‚ÉŽg‚¦‚é - @date 2007.06.25 genta GetDllName: GetDllNameImp‚ðŽg—p‚·‚éꇂ͕K{‚Å‚Í‚È‚¢‚Ì‚ÅC - ƒˆ‰¼‘zŠÖ”‚Í‚â‚߂ăvƒŒ[ƒXƒzƒ‹ƒ_[‚ð—pˆÓ‚·‚éD - @date 2008.05.10 kobake ®—B”h¶ƒNƒ‰ƒX‚ÍA`Imp‚ðƒI[ƒo[ƒ[ƒh‚·‚ê‚Ηǂ¢‚Æ‚¢‚¤•ûŽ®‚Å‚·B + @date 2001.07.05 genta InitDll: 引数追加。パスã®æŒ‡å®šãªã©ã«ä½¿ãˆã‚‹ + @date Apr. 15, 2002 genta RegisterEntriesã®è¿½åŠ ã€‚ + @date 2007.06.25 genta InitDll: GetDllNameImpを使ã†ã‚ˆã†ã«å®Ÿè£…を変更. + @date 2001.07.05 genta GetDllName: 引数追加。パスã®æŒ‡å®šãªã©ã«ä½¿ãˆã‚‹ + @date 2007.06.25 genta GetDllName: GetDllNameImpを使用ã™ã‚‹å ´åˆã¯å¿…é ˆã§ã¯ãªã„ã®ã§ï¼Œ + 純粋仮想関数ã¯ã‚„ã‚ã¦ãƒ—レースホルダーを用æ„ã™ã‚‹ï¼Ž + @date 2008.05.10 kobake æ•´ç†ã€‚派生クラスã¯ã€ï½žImpをオーãƒãƒ¼ãƒ­ãƒ¼ãƒ‰ã™ã‚Œã°è‰¯ã„ã¨ã„ã†æ–¹å¼ã§ã™ã€‚ */ class CDllImp{ // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- // - // Œ^ // + // åž‹ // // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- // public: /*! - ƒAƒhƒŒƒX‚ƃGƒ“ƒgƒŠ–¼‚̑Ήž•\BRegisterEntries‚ÅŽg‚í‚ê‚éB + アドレスã¨ã‚¨ãƒ³ãƒˆãƒªåã®å¯¾å¿œè¡¨ã€‚RegisterEntriesã§ä½¿ã‚れる。 @author YAZAKI @date 2002.01.26 */ @@ -101,106 +101,106 @@ class CDllImp{ }; // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- // - // ¶¬‚Æ”jŠü // + // 生æˆã¨ç ´æ£„ // // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- // public: - //ƒRƒ“ƒXƒgƒ‰ƒNƒ^EƒfƒXƒgƒ‰ƒNƒ^ + //コンストラクタ・デストラクタ CDllImp(); virtual ~CDllImp(); // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- // - // DLLƒ[ƒh // + // DLLロード // // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- // public: - //! DLL‚ÌŠÖ”‚ðŒÄ‚Ño‚¹‚é‚©ó‘Ô‚Ç‚¤‚© + //! DLLã®é–¢æ•°ã‚’呼ã³å‡ºã›ã‚‹ã‹çŠ¶æ…‹ã©ã†ã‹ virtual bool IsAvailable() const { return m_hInstance != NULL; } - //! DLLƒ[ƒh‚ƉŠúˆ— + //! DLLロードã¨åˆæœŸå‡¦ç† EDllResult InitDll( - LPCTSTR pszSpecifiedDllName = NULL //!< [in] ƒNƒ‰ƒX‚ª’è‹`‚µ‚Ä‚¢‚éDLL–¼ˆÈŠO‚ÌDLL‚ð“Ç‚Ýž‚Ý‚½‚¢‚Æ‚«‚ÉA‚»‚ÌDLL–¼‚ðŽw’èB + LPCTSTR pszSpecifiedDllName = NULL //!< [in] クラスãŒå®šç¾©ã—ã¦ã„ã‚‹DLLå以外ã®DLLを読ã¿è¾¼ã¿ãŸã„ã¨ãã«ã€ãã®DLLåを指定。 ); - //! I—¹ˆ—‚ÆDLLƒAƒ“ƒ[ƒh + //! 終了処ç†ã¨DLLアンロード bool DeinitDll( - bool force = false //!< [in] I—¹ˆ—‚ÉŽ¸”s‚µ‚Ä‚àDLL‚ð‰ð•ú‚·‚é‚©‚Ç‚¤‚© + bool force = false //!< [in] 終了処ç†ã«å¤±æ•—ã—ã¦ã‚‚DLLを解放ã™ã‚‹ã‹ã©ã†ã‹ ); - //! ƒCƒ“ƒXƒ^ƒ“ƒXƒnƒ“ƒhƒ‹‚̎擾 + //! インスタンスãƒãƒ³ãƒ‰ãƒ«ã®å–å¾— HINSTANCE GetInstance() const { return m_hInstance; } // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- // - // ‘®« // + // 属性 // // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- // public: - //! ƒ[ƒhÏ‚ÝDLLƒtƒ@ƒCƒ‹–¼‚̎擾Bƒ[ƒh‚³‚ê‚Ä‚¢‚È‚¢ (‚Ü‚½‚̓[ƒh‚ÉŽ¸”s‚µ‚½) ê‡‚Í NULL ‚ð•Ô‚·B + //! ロード済ã¿DLLファイルåã®å–得。ロードã•ã‚Œã¦ã„ãªã„ (ã¾ãŸã¯ãƒ­ãƒ¼ãƒ‰ã«å¤±æ•—ã—ãŸ) å ´åˆã¯ NULL ã‚’è¿”ã™ã€‚ LPCTSTR GetLoadedDllName() const; // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- // - // ƒI[ƒo[ƒ[ƒh‰Â”\ŽÀ‘• // + // オーãƒãƒ¼ãƒ­ãƒ¼ãƒ‰å¯èƒ½å®Ÿè£… // // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- // protected: - //! DLL‚̉Šú‰» + //! DLLã®åˆæœŸåŒ– /*! - DLL‚̃[ƒh‚ɬŒ÷‚µ‚½’¼Œã‚ɌĂÑo‚³‚ê‚éDƒGƒ“ƒgƒŠƒ|ƒCƒ“ƒg‚Ì - Šm”F‚È‚Ç‚ðs‚¤D + DLLã®ãƒ­ãƒ¼ãƒ‰ã«æˆåŠŸã—ãŸç›´å¾Œã«å‘¼ã³å‡ºã•ã‚Œã‚‹ï¼Žã‚¨ãƒ³ãƒˆãƒªãƒã‚¤ãƒ³ãƒˆã® + 確èªãªã©ã‚’è¡Œã†ï¼Ž - @retval true ³íI—¹ - @retval false ˆÙíI—¹ + @retval true 正常終了 + @retval false 異常終了 - @note false‚ð•Ô‚µ‚½ê‡‚ÍA“Ç‚Ýž‚ñ‚¾DLL‚ð‰ð•ú‚·‚éD + @note falseã‚’è¿”ã—ãŸå ´åˆã¯ã€èª­ã¿è¾¼ã‚“ã DLLを解放ã™ã‚‹ï¼Ž */ virtual bool InitDllImp() = 0; - //! ŠÖ”‚̉Šú‰» + //! 関数ã®åˆæœŸåŒ– /*! - DLL‚̃Aƒ“ƒ[ƒh‚ðs‚¤’¼‘O‚ɌĂÑo‚³‚ê‚éDƒƒ‚ƒŠ‚̉ð•ú‚È‚Ç‚ð - s‚¤D + DLLã®ã‚¢ãƒ³ãƒ­ãƒ¼ãƒ‰ã‚’è¡Œã†ç›´å‰ã«å‘¼ã³å‡ºã•ã‚Œã‚‹ï¼Žãƒ¡ãƒ¢ãƒªã®è§£æ”¾ãªã©ã‚’ + è¡Œã†ï¼Ž - @retval true ³íI—¹ - @retval false ˆÙíI—¹ + @retval true 正常終了 + @retval false 異常終了 - @note false‚ð•Ô‚µ‚½‚Æ‚«‚ÍDLL‚ÌUnload‚Ís‚í‚ê‚È‚¢D - @par ’ˆÓ - ƒfƒXƒgƒ‰ƒNƒ^‚©‚çDeinitDll‹y‚ÑDeinitDllImp‚ªŒÄ‚Ño‚³‚ꂽ‚Æ‚«‚Í - ƒ|ƒŠƒ‚[ƒtƒBƒYƒ€‚ªs‚í‚ê‚È‚¢‚½‚߂ɃTƒuƒNƒ‰ƒX‚ÌDeinitDllImp‚ªŒÄ‚Ño‚³‚ê‚È‚¢B - ‚»‚Ì‚½‚ßAƒTƒuƒNƒ‰ƒX‚̃fƒXƒgƒ‰ƒNƒ^‚Å‚ÍDeinitDllImp‚𖾎¦“I‚ɌĂÑo‚·•K—v‚ª‚ ‚éB + @note falseã‚’è¿”ã—ãŸã¨ãã¯DLLã®Unloadã¯è¡Œã‚ã‚Œãªã„. + @par æ³¨æ„ + デストラクタã‹ã‚‰DeinitDllåŠã³DeinitDllImpãŒå‘¼ã³å‡ºã•ã‚ŒãŸã¨ã㯠+ ãƒãƒªãƒ¢ãƒ¼ãƒ•ã‚£ã‚ºãƒ ãŒè¡Œã‚ã‚Œãªã„ãŸã‚ã«ã‚µãƒ–クラスã®DeinitDllImpãŒå‘¼ã³å‡ºã•ã‚Œãªã„。 + ãã®ãŸã‚ã€ã‚µãƒ–クラスã®ãƒ‡ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ã§ã¯DeinitDllImpを明示的ã«å‘¼ã³å‡ºã™å¿…è¦ãŒã‚る。 - DeinitDll‚ªƒfƒXƒgƒ‰ƒNƒ^ˆÈŠO‚©‚çŒÄ‚Ño‚³‚ê‚éꇂÍDeinitDllImp‚͉¼‘zŠÖ”‚Æ‚µ‚Ä - ƒTƒuƒNƒ‰ƒX‚Ì‚à‚Ì‚ªŒÄ‚Ño‚³‚êAƒfƒXƒgƒ‰ƒNƒ^‚Í“–‘RŒÄ‚Ño‚³‚ê‚È‚¢‚Ì‚Å - DeinitDllImp‚»‚Ì‚à‚Ì‚Í•K—v‚Å‚ ‚éB + DeinitDllãŒãƒ‡ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ä»¥å¤–ã‹ã‚‰å‘¼ã³å‡ºã•ã‚Œã‚‹å ´åˆã¯DeinitDllImpã¯ä»®æƒ³é–¢æ•°ã¨ã—㦠+ サブクラスã®ã‚‚ã®ãŒå‘¼ã³å‡ºã•ã‚Œã€ãƒ‡ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ã¯å½“然呼ã³å‡ºã•ã‚Œãªã„ã®ã§ + DeinitDllImpãã®ã‚‚ã®ã¯å¿…è¦ã§ã‚る。 - ƒfƒXƒgƒ‰ƒNƒ^‚©‚çDeinitDllImp‚ðŒÄ‚Ô‚Æ‚«‚ÍA‰Šú‰»‚³‚ê‚Ä‚¢‚é‚Æ‚¢‚¤•ÛØ‚ª‚È‚¢‚Ì‚Å - ŒÄ‚Ño‚µ‘O‚ÉIsAvailable‚É‚æ‚éŠm”F‚ð•K‚¸s‚¤‚±‚ÆB + デストラクタã‹ã‚‰DeinitDllImpを呼ã¶ã¨ãã¯ã€åˆæœŸåŒ–ã•ã‚Œã¦ã„ã‚‹ã¨ã„ã†ä¿è¨¼ãŒãªã„ã®ã§ + 呼ã³å‡ºã—å‰ã«IsAvailableã«ã‚ˆã‚‹ç¢ºèªã‚’å¿…ãšè¡Œã†ã“ã¨ã€‚ - @date 2002.04.15 genta ’ˆÓ‘‚«’ljÁ + @date 2002.04.15 genta 注æ„書ã追加 */ virtual bool DeinitDllImp(); - //! DLLƒtƒ@ƒCƒ‹–¼‚̎擾(•¡”‚ð‡ŽŸ) + //! DLLファイルåã®å–å¾—(複数を順次) /*! - DLLƒtƒ@ƒCƒ‹–¼‚Æ‚µ‚Ä•¡”‚̉”\«‚ª‚ ‚èC‚»‚Ì‚¤‚¿‚̈ê‚‚łà - Œ©‚‚©‚Á‚½‚à‚Ì‚ðŽg—p‚·‚éꇂɑΉž‚·‚éD + DLLファイルåã¨ã—ã¦è¤‡æ•°ã®å¯èƒ½æ€§ãŒã‚り,ãã®ã†ã¡ã®ä¸€ã¤ã§ã‚‚ + 見ã¤ã‹ã£ãŸã‚‚ã®ã‚’使用ã™ã‚‹å ´åˆã«å¯¾å¿œã™ã‚‹ï¼Ž - ”Ô†‚ɉž‚¶‚Ä‚»‚ꂼ‚êˆÙ‚È‚éƒtƒ@ƒCƒ‹–¼‚ð•Ô‚·‚±‚Æ‚ª‚Å‚«‚éD - LoadLibrary()‚©‚ç‚Ícounter‚ð0‚©‚ç1‚¸‚‘‰Á‚³‚¹‚ć‚ɌĂт¾‚³‚ê‚éD - ‚»‚ê‚ÍDLL‚̃[ƒh‚ɬŒ÷‚·‚é(¬Œ÷)‚©C–ß‚è’l‚Æ‚µ‚ÄNULL‚ð•Ô‚·(Ž¸”s) - ‚Ü‚Å‘±‚¯‚ç‚ê‚éD + 番å·ã«å¿œã˜ã¦ãã‚Œãžã‚Œç•°ãªã‚‹ãƒ•ã‚¡ã‚¤ãƒ«åã‚’è¿”ã™ã“ã¨ãŒã§ãる. + LoadLibrary()ã‹ã‚‰ã¯counterã‚’0ã‹ã‚‰1ãšã¤å¢—加ã•ã›ã¦é †ã«å‘¼ã³ã ã•ã‚Œã‚‹ï¼Ž + ãã‚Œã¯DLLã®ãƒ­ãƒ¼ãƒ‰ã«æˆåŠŸã™ã‚‹(æˆåŠŸ)ã‹ï¼Œæˆ»ã‚Šå€¤ã¨ã—ã¦NULLã‚’è¿”ã™(失敗) + ã¾ã§ç¶šã‘られる. - @param[in] nIndex ƒCƒ“ƒfƒbƒNƒXD(0`) + @param[in] nIndex インデックス.(0~) - @return ˆø”‚ɉž‚¶‚ÄDLL–¼(LoadLibrary‚É“n‚·•¶Žš—ñ)C‚Ü‚½‚ÍNULLD + @return 引数ã«å¿œã˜ã¦DLLå(LoadLibraryã«æ¸¡ã™æ–‡å­—列),ã¾ãŸã¯NULL. */ virtual LPCTSTR GetDllNameImp(int nIndex) = 0; // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- // - // ŽÀ‘••â• // + // 実装補助 // // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- // protected: bool RegisterEntries(const ImportTable table[]); // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- // - // ƒƒ“ƒo•Ï” // + // メンãƒå¤‰æ•° // // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- // private: HINSTANCE m_hInstance; diff --git a/sakura_core/extmodule/CHtmlHelp.cpp b/sakura_core/extmodule/CHtmlHelp.cpp index b06d7a27c2..2f081c2b54 100644 --- a/sakura_core/extmodule/CHtmlHelp.cpp +++ b/sakura_core/extmodule/CHtmlHelp.cpp @@ -1,7 +1,7 @@ -/*! @file - @brief HtmpHelp“®“Iƒ[ƒh +/*! @file + @brief HtmpHelp動的ロード - HTML Help ƒRƒ“ƒ|[ƒlƒ“ƒg‚Ö‚Ì“®“IƒAƒNƒZƒXƒNƒ‰ƒX + HTML Help コンãƒãƒ¼ãƒãƒ³ãƒˆã¸ã®å‹•çš„アクセスクラス @author genta @date Jul. 5, 2001 @@ -37,7 +37,7 @@ CHtmlHelp::~CHtmlHelp(void) {} /*! - HTML Help ‚̃tƒ@ƒCƒ‹–¼‚ð“n‚· + HTML Help ã®ãƒ•ã‚¡ã‚¤ãƒ«åを渡㙠*/ LPCTSTR CHtmlHelp::GetDllNameImp(int nIndex) { diff --git a/sakura_core/extmodule/CHtmlHelp.h b/sakura_core/extmodule/CHtmlHelp.h index 8f2c9df304..8977986268 100644 --- a/sakura_core/extmodule/CHtmlHelp.h +++ b/sakura_core/extmodule/CHtmlHelp.h @@ -1,7 +1,7 @@ -/*! @file - @brief HtmpHelp“®“Iƒ[ƒh +/*! @file + @brief HtmpHelp動的ロード - HTML Help ƒRƒ“ƒ|[ƒlƒ“ƒg‚Ö‚Ì“®“IƒAƒNƒZƒXƒNƒ‰ƒX + HTML Help コンãƒãƒ¼ãƒãƒ³ãƒˆã¸ã®å‹•çš„アクセスクラス @author genta @date Jul. 5, 2001 @@ -37,16 +37,16 @@ /*! - @brief HtmpHelp“®“Iƒ[ƒh + @brief HtmpHelp動的ロード - HTMLƒwƒ‹ƒvƒRƒ“ƒ|[ƒlƒ“ƒg‚Ì“®“Iƒ[ƒh‚ðƒTƒ|[ƒg‚·‚éƒNƒ‰ƒX + HTMLヘルプコンãƒãƒ¼ãƒãƒ³ãƒˆã®å‹•çš„ロードをサãƒãƒ¼ãƒˆã™ã‚‹ã‚¯ãƒ©ã‚¹ */ class CHtmlHelp : public CDllImp { public: CHtmlHelp(){} virtual ~CHtmlHelp(); - // HtmlHelp ‚ÌEntry Point + // HtmlHelp ã®Entry Point typedef HWND (WINAPI* Proc_HtmlHelp)(HWND, LPCTSTR, UINT, DWORD_PTR); Proc_HtmlHelp HtmlHelp; diff --git a/sakura_core/extmodule/CMigemo.cpp b/sakura_core/extmodule/CMigemo.cpp index 4bdf6712c5..deabfa47b9 100644 --- a/sakura_core/extmodule/CMigemo.cpp +++ b/sakura_core/extmodule/CMigemo.cpp @@ -1,8 +1,8 @@ -/*! @file - @brief C/Migemo ƒCƒ“ƒ^[ƒtƒF[ƒX +/*! @file + @brief C/Migemo インターフェース @author isearch - @date 2004.09.14 V‹Kì¬ + @date 2004.09.14 æ–°è¦ä½œæˆ */ /* Copyright (C) 2004, isearch @@ -24,12 +24,12 @@ #include "util/module.h" #include "util/file.h" -/*! @brief PCRE ƒƒ^ƒLƒƒƒ‰ƒNƒ^‚̃GƒXƒP[ƒvˆ—‚ðs‚¤B - iCMigemo::migemo_setproc_int2char ‚̈ø”‚Æ‚µ‚ÄŽg—pj - @param[in] in “ü—Í•¶ŽšƒR[ƒh(unsigned int) - @param[out] out o—̓oƒCƒg—ñ(unsigned char*) - @return o—Í‚³‚ꂽ•¶Žš—ñ‚̃oƒCƒg”B - 0‚ð•Ô‚¹‚΃fƒtƒHƒ‹ƒg‚̃vƒƒV[ƒWƒƒ‚ªŽÀs‚³‚ê‚éB +/*! @brief PCRE メタキャラクタã®ã‚¨ã‚¹ã‚±ãƒ¼ãƒ—処ç†ã‚’è¡Œã†ã€‚ + (CMigemo::migemo_setproc_int2char ã®å¼•æ•°ã¨ã—ã¦ä½¿ç”¨ï¼‰ + @param[in] in 入力文字コード(unsigned int) + @param[out] out 出力ãƒã‚¤ãƒˆåˆ—(unsigned char*) + @return 出力ã•ã‚ŒãŸæ–‡å­—列ã®ãƒã‚¤ãƒˆæ•°ã€‚ + 0ã‚’è¿”ã›ã°ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®ãƒ—ロシージャãŒå®Ÿè¡Œã•ã‚Œã‚‹ã€‚ */ static int __cdecl pcre_int2char(unsigned int in, unsigned char* out); // 2009.04.30 miau @@ -38,11 +38,11 @@ int __cdecl pcre_char2int_utf8(const unsigned char*, unsigned int*); int __cdecl pcre_int2char_utf8(unsigned int, unsigned char*); //----------------------------------------- -// DLL ‰Šú‰»ŠÖ” +// DLL åˆæœŸåŒ–関数 //----------------------------------------- bool CMigemo::InitDllImp() { - // static‚É‚µ‚Ä‚Í‚¢‚¯‚È‚¢‚炵‚¢ + // staticã«ã—ã¦ã¯ã„ã‘ãªã„らã—ã„ const ImportTable table[] = { { &m_migemo_open ,"migemo_open" }, @@ -73,10 +73,10 @@ bool CMigemo::InitDllImp() m_migemo_load_s = (Proc_migemo_load_s) m_migemo_load; m_migemo_is_enable_s = (Proc_migemo_is_enable_s) m_migemo_is_enable; - // IA64/x64‚͑Ήž•s—v + // IA64/x64ã¯å¯¾å¿œä¸è¦ #ifdef _WIN64 #else - // ver 1.3 ˆÈ~‚Í stdcall + // ver 1.3 以é™ã¯ stdcall DWORD dwVersionMS, dwVersionLS; GetAppVersionInfo( GetInstance(), VS_VERSION_INFO, &dwVersionMS, &dwVersionLS ); @@ -116,7 +116,7 @@ LPCTSTR CMigemo::GetDllNameImp(int nIndex) } else{ if(_IS_REL_PATH(szDll)){ - GetInidirOrExedir(szDllName , szDll); // 2007.05.21 ryoji ‘Š‘΃pƒX‚ÍÝ’èƒtƒ@ƒCƒ‹‚©‚ç‚̃pƒX‚ð—Dæ + GetInidirOrExedir(szDllName , szDll); // 2007.05.21 ryoji 相対パスã¯è¨­å®šãƒ•ã‚¡ã‚¤ãƒ«ã‹ã‚‰ã®ãƒ‘スを優先 szDll = szDllName; } return szDll; @@ -287,18 +287,18 @@ int CMigemo::migemo_load_all() TCHAR *ppath; if (szDict[0] == _T('\0')){ - GetInidirOrExedir(path,_T("dict")); // 2007.05.20 ryoji ‘Š‘΃pƒX‚ÍÝ’èƒtƒ@ƒCƒ‹‚©‚ç‚̃pƒX‚ð—Dæ + GetInidirOrExedir(path,_T("dict")); // 2007.05.20 ryoji 相対パスã¯è¨­å®šãƒ•ã‚¡ã‚¤ãƒ«ã‹ã‚‰ã®ãƒ‘スを優先 } else{ if (_IS_REL_PATH(szDict)){ - GetInidirOrExedir(path,szDict); // 2007.05.19 ryoji ‘Š‘΃pƒX‚ÍÝ’èƒtƒ@ƒCƒ‹‚©‚ç‚̃pƒX‚ð—Dæ + GetInidirOrExedir(path,szDict); // 2007.05.19 ryoji 相対パスã¯è¨­å®šãƒ•ã‚¡ã‚¤ãƒ«ã‹ã‚‰ã®ãƒ‘スを優先 }else{ _tcscpy(path,szDict); } } ppath = &path[_tcslen(path)]; *(ppath++) = _T('\\'); - // ver1.3 utf8‘Ήž + // ver1.3 utf8対応 _tcscpy(ppath,_T("utf-8\\migemo-dict")); if(fexist(path)){ _tcscpy(ppath,_T("utf-8\\")); @@ -324,7 +324,7 @@ int CMigemo::migemo_load_all() _tcscpy(ppath,_T("zen2han.dat")); migemo_load_t(MIGEMO_DICTID_ZEN2HAN,path); - // 2011.12.11 Moca Ž«‘“o˜^Œã‚Å‚È‚¢‚Æmigemo“à‘Ÿ‚Ì‚à‚Ì‚É•ÏX‚³‚ê‚Ä‚µ‚Ü‚¤ + // 2011.12.11 Moca 辞書登録後ã§ãªã„ã¨migemo内臓ã®ã‚‚ã®ã«å¤‰æ›´ã•ã‚Œã¦ã—ã¾ã† if( m_bUtf8 ){ migemo_setproc_char2int(pcre_char2int_utf8); migemo_setproc_int2char(pcre_int2char_utf8); @@ -358,10 +358,10 @@ int __cdecl pcre_char2int_sjis(const unsigned char* in, unsigned int* out) -// C/Migemo ƒ\[ƒX’†‚Ì rxgen.c:default_int2char ‚ðŒ³‚Éì¬B // 2009.04.30 miau +// C/Migemo ソース中㮠rxgen.c:default_int2char ã‚’å…ƒã«ä½œæˆã€‚ // 2009.04.30 miau static int __cdecl pcre_int2char(unsigned int in, unsigned char* out) { - /* out‚ÍÅ’á‚Å‚à16ƒoƒCƒg‚Í‚ ‚éA‚Æ‚¢‚¤‰¼’è‚ð’u‚­ */ + /* outã¯æœ€ä½Žã§ã‚‚16ãƒã‚¤ãƒˆã¯ã‚ã‚‹ã€ã¨ã„ã†ä»®å®šã‚’ç½®ã */ if (in >= 0x100) { if (out) diff --git a/sakura_core/extmodule/CMigemo.h b/sakura_core/extmodule/CMigemo.h index 01b2fceaba..e787756440 100644 --- a/sakura_core/extmodule/CMigemo.h +++ b/sakura_core/extmodule/CMigemo.h @@ -1,10 +1,10 @@ -/*! @file - @brief MigemoŠÖ˜A +/*! @file + @brief Migemo関連 - C/MigemoƒAƒNƒZƒXŠÖ” + C/Migemoアクセス関数 @author isearch - @date 2004.09.14 V‹Kì¬ + @date 2004.09.14 æ–°è¦ä½œæˆ */ /* Copyright (C) 2004, isearch @@ -15,7 +15,7 @@ Please contact the copyright holder to use this code for other purpose. */ /* -Migemo ‚̓[ƒ}Žš‚Ì‚Ü‚Ü“ú–{Œê‚ðƒCƒ“ƒNƒŠƒƒ“ƒ^ƒ‹ŒŸõ‚·‚邽‚߂̃c[ƒ‹‚Å‚·B +Migemo ã¯ãƒ­ãƒ¼ãƒžå­—ã®ã¾ã¾æ—¥æœ¬èªžã‚’インクリメンタル検索ã™ã‚‹ãŸã‚ã®ãƒ„ールã§ã™ã€‚ */ #ifndef _SAKURA_MIGEMO_H_ @@ -44,7 +44,7 @@ typedef int (__cdecl *MIGEMO_PROC_CHAR2INT)(const unsigned char*, unsigned int*) typedef int (__cdecl *MIGEMO_PROC_INT2CHAR)(unsigned int, unsigned char*); /** - * MigemoƒIƒuƒWƒFƒNƒgBmigemo_open()‚Å쬂³‚êAmigemo_close‚Å”jŠü‚³‚ê‚éB + * Migemoオブジェクト。migemo_open()ã§ä½œæˆã•ã‚Œã€migemo_closeã§ç ´æ£„ã•ã‚Œã‚‹ã€‚ */ typedef struct _migemo migemo; @@ -61,8 +61,8 @@ class CMigemo : public TSingleton, public CDllImp { // Entry Point protected: - // Aug. 20, 2005 Aroka : Å“K‰»ƒIƒvƒVƒ‡ƒ“‚ŃfƒtƒHƒ‹ƒg‚ð__fastcall‚É•ÏX‚µ‚Ä‚à - // ‰e‹¿‚ðŽó‚¯‚È‚¢‚悤‚É‚·‚éD + // Aug. 20, 2005 Aroka : 最é©åŒ–オプションã§ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã‚’__fastcallã«å¤‰æ›´ã—ã¦ã‚‚ + // 影響をå—ã‘ãªã„よã†ã«ã™ã‚‹ï¼Ž typedef migemo* (__cdecl *Proc_migemo_open) (char* dict); typedef void (__cdecl *Proc_migemo_close) (migemo* object); typedef unsigned char* (__cdecl *Proc_migemo_query) (migemo* object, unsigned char* query); @@ -108,7 +108,7 @@ class CMigemo : public TSingleton, public CDllImp { Proc_migemo_is_enable_s m_migemo_is_enable_s; migemo* m_migemo; - // IA64/x64‚͑Ήž•s—v + // IA64/x64ã¯å¯¾å¿œä¸è¦ #ifdef _WIN64 static const bool m_bStdcall = true; #else diff --git a/sakura_core/extmodule/CUxTheme.cpp b/sakura_core/extmodule/CUxTheme.cpp index dc519fcd6b..2546ab4bdd 100644 --- a/sakura_core/extmodule/CUxTheme.cpp +++ b/sakura_core/extmodule/CUxTheme.cpp @@ -1,7 +1,7 @@ -/*! @file - @brief UxTheme “®“Iƒ[ƒh +/*! @file + @brief UxTheme 動的ロード - UxTheme (Windows thmeme manager) ‚Ö‚Ì“®“IƒAƒNƒZƒXƒNƒ‰ƒX + UxTheme (Windows thmeme manager) ã¸ã®å‹•çš„アクセスクラス @author ryoji @date Apr. 1, 2007 @@ -43,13 +43,13 @@ CUxTheme::~CUxTheme() } -/*! DLL ‚̃[ƒh +/*! DLL ã®ãƒ­ãƒ¼ãƒ‰ - ˆê“x‚µ‚© LoadLibrary() ŽÀs‚µ‚È‚¢‚±‚ƈȊO‚Í CDllImp::Init() ‚Æ“¯‚¶ - iUxTheme –¢‘Ήž OS ‚Å‚Ì LoadLibrary() Ž¸”s‚ÌŒJ•Ô‚µ‚ð–h‚®j + 一度ã—ã‹ LoadLibrary() 実行ã—ãªã„ã“ã¨ä»¥å¤–㯠CDllImp::Init() ã¨åŒã˜ + (UxTheme 未対応 OS ã§ã® LoadLibrary() 失敗ã®ç¹°è¿”ã—を防ã) @author ryoji - @date 2007.04.01 ryoji V‹K + @date 2007.04.01 ryoji æ–°è¦ */ bool CUxTheme::InitThemeDll( TCHAR* str ) { @@ -61,7 +61,7 @@ bool CUxTheme::InitThemeDll( TCHAR* str ) } /*! - UxTheme ‚̃tƒ@ƒCƒ‹–¼‚ð“n‚· + UxTheme ã®ãƒ•ã‚¡ã‚¤ãƒ«åを渡㙠*/ LPCTSTR CUxTheme::GetDllNameImp(int nIndex) { diff --git a/sakura_core/extmodule/CUxTheme.h b/sakura_core/extmodule/CUxTheme.h index 3f3393abab..b68916ab39 100644 --- a/sakura_core/extmodule/CUxTheme.h +++ b/sakura_core/extmodule/CUxTheme.h @@ -1,7 +1,7 @@ -/*! @file - @brief UxTheme “®“Iƒ[ƒh +/*! @file + @brief UxTheme 動的ロード - UxTheme (Windows thmeme manager) ‚Ö‚Ì“®“IƒAƒNƒZƒXƒNƒ‰ƒX + UxTheme (Windows thmeme manager) ã¸ã®å‹•çš„アクセスクラス @author ryoji @date Apr. 1, 2007 @@ -62,9 +62,9 @@ enum TABITEMSTATES { #include "util/design_template.h" /*! - @brief UxTheme “®“Iƒ[ƒh + @brief UxTheme 動的ロード - UxTheme ƒRƒ“ƒ|[ƒlƒ“ƒg‚Ì“®“Iƒ[ƒh‚ðƒTƒ|[ƒg‚·‚éƒNƒ‰ƒX + UxTheme コンãƒãƒ¼ãƒãƒ³ãƒˆã®å‹•çš„ロードをサãƒãƒ¼ãƒˆã™ã‚‹ã‚¯ãƒ©ã‚¹ */ class CUxTheme : public TSingleton, public CDllImp { friend class TSingleton;