Skip to content

Commit 96bbe32

Browse files
committed
don't forget to call Py_FinalizeEx after Py_InitializeEx
make PyObjectPtr noncopyable auto call Py_XDECREF show error message when LodLibrary fails CPythonMacroManager.cpp で g_pEditView グローバル変数を使うのを止める 警告除去 remove unused utf8_to_utf16le function show Python error message with MessageBox use LoadLibraryExedir function use PyErr_Fetch to get error message string detect and erase UTF-8 BOM from fread string in CPythonMacroManager::LoadKeyMacro use UTF-8 encoding string for filename argument of Py_CompileString function add error checks update handleFunction to use PyUnicode_AsWideCharString instead of PyUnicode_AsUTF8AndSize use case-insensitive string comparison for python file extension add file open error check in CPythonMacroManager::LoadKeyMacro method call GetProcAddress only after DLL is loaded use PyUnicode_AsUTF8AndSize instead of PyUnicode_AsUTF8 so that vulnerable strlen can be avoided explicitly cast function pointer to void* before copying it to void* type variable マクロの Python 対応
1 parent 53ea30b commit 96bbe32

8 files changed

+1195
-4
lines changed

sakura/sakura.vcxproj

+2
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,7 @@
339339
<ClInclude Include="..\sakura_core\macro\CMacroManagerBase.h" />
340340
<ClInclude Include="..\sakura_core\macro\CPPA.h" />
341341
<ClInclude Include="..\sakura_core\macro\CPPAMacroMgr.h" />
342+
<ClInclude Include="..\sakura_core\macro\CPythonMacroManager.h" />
342343
<ClInclude Include="..\sakura_core\macro\CSMacroMgr.h" />
343344
<ClInclude Include="..\sakura_core\macro\CWSH.h" />
344345
<ClInclude Include="..\sakura_core\macro\CWSHIfObj.h" />
@@ -708,6 +709,7 @@
708709
<ClCompile Include="..\sakura_core\macro\CMacroManagerBase.cpp" />
709710
<ClCompile Include="..\sakura_core\macro\CPPA.cpp" />
710711
<ClCompile Include="..\sakura_core\macro\CPPAMacroMgr.cpp" />
712+
<ClCompile Include="..\sakura_core\macro\CPythonMacroManager.cpp" />
711713
<ClCompile Include="..\sakura_core\macro\CSMacroMgr.cpp" />
712714
<ClCompile Include="..\sakura_core\macro\CWSH.cpp" />
713715
<ClCompile Include="..\sakura_core\macro\CWSHIfObj.cpp" />

sakura/sakura.vcxproj.filters

+6
Original file line numberDiff line numberDiff line change
@@ -1118,6 +1118,9 @@
11181118
<ClInclude Include="..\sakura_core\parse\DetectIndentationStyle.h">
11191119
<Filter>Cpp Source Files\parse</Filter>
11201120
</ClInclude>
1121+
<ClInclude Include="..\sakura_core\macro\CPythonMacroManager.h">
1122+
<Filter>Cpp Source Files\macro</Filter>
1123+
</ClInclude>
11211124
</ItemGroup>
11221125
<ItemGroup>
11231126
<None Include="..\resource\auto_scroll_center.cur">
@@ -2321,6 +2324,9 @@
23212324
<ClCompile Include="..\sakura_core\parse\DetectIndentationStyle.cpp">
23222325
<Filter>Cpp Source Files\parse</Filter>
23232326
</ClCompile>
2327+
<ClCompile Include="..\sakura_core\macro\CPythonMacroManager.cpp">
2328+
<Filter>Cpp Source Files\macro</Filter>
2329+
</ClCompile>
23242330
</ItemGroup>
23252331
<ItemGroup>
23262332
<Image Include="..\resource\auto_scroll_center.bmp">

sakura_core/dlg/CDlgOpenFile_CommonFileDialog.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -726,10 +726,11 @@ bool CDlgOpenFile_CommonFileDialog::DoModal_GetOpenFileName( WCHAR* pszPath, EFi
726726
cFileExt.AppendExtRaw( LS(STR_DLGOPNFL_EXTNAME2), L"*.txt" );
727727
break;
728728
case EFITER_MACRO:
729-
cFileExt.AppendExtRaw( L"Macros", L"*.js;*.vbs;*.ppa;*.mac" );
729+
cFileExt.AppendExtRaw( L"Macros", L"*.js;*.vbs;*.ppa;*.py;*.mac" );
730730
cFileExt.AppendExtRaw( L"JScript", L"*.js" );
731731
cFileExt.AppendExtRaw( L"VBScript", L"*.vbs" );
732732
cFileExt.AppendExtRaw( L"Pascal", L"*.ppa" );
733+
cFileExt.AppendExtRaw( L"Python", L"*.py" );
733734
cFileExt.AppendExtRaw( L"Key Macro", L"*.mac" );
734735
break;
735736
case EFITER_NONE:

sakura_core/dlg/CDlgOpenFile_CommonItemDialog.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -475,10 +475,11 @@ bool CDlgOpenFile_CommonItemDialog::DoModal_GetOpenFileName( WCHAR* pszPath, EFi
475475
specs.push_back(COMDLG_FILTERSPEC{strs.back().c_str(), L"*.txt"});
476476
break;
477477
case EFITER_MACRO:
478-
specs.push_back(COMDLG_FILTERSPEC{L"Macros", L"*.js;*.vbs;*.ppa;*.mac"});
478+
specs.push_back(COMDLG_FILTERSPEC{L"Macros", L"*.js;*.vbs;*.ppa;*.py;*.mac"});
479479
specs.push_back(COMDLG_FILTERSPEC{L"JScript", L"*.js"});
480480
specs.push_back(COMDLG_FILTERSPEC{L"VBScript", L"*.vbs"});
481481
specs.push_back(COMDLG_FILTERSPEC{L"Pascal", L"*.ppa"});
482+
specs.push_back(COMDLG_FILTERSPEC{L"Python", L"*.py"});
482483
specs.push_back(COMDLG_FILTERSPEC{L"Key Macro", L"*.mac"});
483484
break;
484485
case EFITER_NONE:

0 commit comments

Comments
 (0)