Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
d4727b4
マルチスレッド、除外ファイルの正規化
hpmy-dev May 21, 2026
bea6726
grep用テスト
hpmy-dev May 21, 2026
9493256
#2459指摘、Grep並列化: RunParallelGrep 切り出し・デッドロック対策・カバレッジ追加 + SonarQube セキ…
hpmy-dev Jun 11, 2026
5461b02
カバレッジ改善、SonarQube改善対応
hpmy-dev Jun 12, 2026
c8989f7
除外ファイルに正規表現のチェックボックスを追加及び機能改善
hpmy-dev Jun 19, 2026
e7c984d
SonarCloud対応
hpmy-dev Jun 22, 2026
6b7e23b
BOM付に変更
hpmy-dev Jun 24, 2026
d05711d
Merge branch 'master' into feature/grepmatulithreads
hpmy-dev Jun 24, 2026
e4dbcc5
SonarQube
hpmy-dev Jul 2, 2026
d11d9ba
Merge branch 'master' into feature/grepmatulithreads
hpmy-dev Jul 3, 2026
e47bd3e
Copyrightの修正
hpmy-dev Jul 3, 2026
15fa171
Merge branch 'feature/grepmatulithreads' of https://github.com/hpmy-d…
hpmy-dev Jul 3, 2026
d276676
コメントでの対応
hpmy-dev Jul 3, 2026
c8a79ca
改善1
Jul 5, 2026
9297564
改善2
Jul 5, 2026
f5c09a8
改善3
hpmy-dev Jul 7, 2026
b6e23e6
改善4
hpmy-dev Jul 9, 2026
fe3ed4d
encoding の不正
hpmy-dev Jul 10, 2026
2809a92
改善5
hpmy-dev Jul 10, 2026
aefc333
Merge branch 'master' into feature/grepmatulithreads5
hpmy-dev Jul 10, 2026
52f1f16
テストケースの追加
hpmy-dev Jul 10, 2026
a2403f1
Merge branch 'feature/grepmatulithreads5' of https://github.com/hpmy-…
hpmy-dev Jul 10, 2026
dc2676b
Merge branch 'master' into feature/grepmatulithreads5
hpmy-dev Jul 11, 2026
33053d7
Merge branch 'master' into feature/grepmatulithreads5
hpmy-dev Jul 11, 2026
1ed3eda
Merge branch 'master' into feature/grepmatulithreads5
hpmy-dev Jul 12, 2026
6850108
改善6
hpmy-dev Jul 13, 2026
5b6f31d
Merge branch 'feature/grepmatulithreads5' of https://github.com/hpmy-…
hpmy-dev Jul 13, 2026
0f1c790
修正7
hpmy-dev Jul 13, 2026
c55a058
改善8
hpmy-dev Jul 13, 2026
01bcacc
改善9
hpmy-dev Jul 13, 2026
7948c2e
改善10
hpmy-dev Jul 13, 2026
07957d6
endt
hpmy-dev Jul 13, 2026
c4c91d7
改善11
hpmy-dev Jul 13, 2026
56e4039
debubモード時の改善
hpmy-dev Jul 14, 2026
998e756
改善12
hpmy-dev Jul 15, 2026
5457d32
改善13
hpmy-dev Jul 15, 2026
991744c
改善14
hpmy-dev Jul 15, 2026
0bf96d6
コメントのみ追記
hpmy-dev Jul 16, 2026
6ee6a82
Merge branch 'master' into feature/grepmatulithreads5
hpmy-dev Jul 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 9 additions & 6 deletions sakura_core/_main/CCommandLine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
Copyright (C) 2005, D.S.Koba, genta, susu
Copyright (C) 2006, ryoji
Copyright (C) 2007, ryoji
Copyright (C) 2018-2022, Sakura Editor Organization
Copyright (C) 2018-2026, Sakura Editor Organization

This source code is designed for sakura editor.
Please contact the copyright holder to use this code for other purpose.
Expand Down Expand Up @@ -274,17 +274,18 @@ void CCommandLine::ParseCommandLine( LPCWSTR pszCmdLineSrc, bool bResponse )
}

CNativeW cmResponseFile = L"";
LPWSTR pszCmdLineWork = new WCHAR[lstrlen( pszCmdLineSrc ) + 1];
wcscpy( pszCmdLineWork, pszCmdLineSrc );
int nCmdLineWorkLen = lstrlen( pszCmdLineWork );
const int nCmdLineWorkSize = lstrlen( pszCmdLineSrc ) + 1;
LPWSTR pszCmdLineWork = new WCHAR[nCmdLineWorkSize];
wcscpy_s( pszCmdLineWork, nCmdLineWorkSize, pszCmdLineSrc );
int nCmdLineWorkLen = nCmdLineWorkSize - 1;
LPWSTR pszToken = my_strtok<WCHAR>( pszCmdLineWork, nCmdLineWorkLen, &nPos, L" " );
while( pszToken != nullptr )
{
DEBUG_TRACE( L"OPT=[%s]\n", pszToken );

// 2007.09.09 genta オプション判定ルール変更.オプション解析停止と""で囲まれたオプションを考慮
if( ( bParseOptDisabled ||
! (pszToken[0] == '-' || (pszToken[0] == '"' && pszToken[1] == '-')) )){
if( bParseOptDisabled ||
! (pszToken[0] == '-' || (pszToken[0] == '"' && pszToken[1] == '-')) ){

if( pszToken[0] == L'\"' ){
CNativeW cmWork;
Expand Down Expand Up @@ -484,6 +485,8 @@ void CCommandLine::ParseCommandLine( LPCWSTR pszCmdLineSrc, bool bResponse )
m_gi.bGrepPaste = true; break;
case 'O':
m_gi.bGrepBackup = true; break;
case 'E':
m_gi.bGrepExcludeFileRegexp = true; break;
default:
break;
}
Expand Down
25 changes: 13 additions & 12 deletions sakura_core/_main/CControlTray.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -150,18 +150,19 @@ void CControlTray::DoGrepCreateWindow(HINSTANCE hinst, HWND msgParent, CDlgGrep&

//GOPTオプション
WCHAR pOpt[64] = L"";
if( cDlgGrep.m_bSubFolder )wcscat( pOpt, L"S" ); // サブフォルダーからも検索する
if( cDlgGrep.m_sSearchOption.bLoHiCase )wcscat( pOpt, L"L" ); // 英大文字と英小文字を区別する
if( cDlgGrep.m_sSearchOption.bRegularExp )wcscat( pOpt, L"R" ); // 正規表現
if( cDlgGrep.m_nGrepOutputLineType == 1 )wcscat( pOpt, L"P" ); // 行を出力する
if( cDlgGrep.m_nGrepOutputLineType == 2 )wcscat( pOpt, L"N" ); // 否ヒット行を出力する 2014.09.23
if( cDlgGrep.m_sSearchOption.bWordOnly )wcscat( pOpt, L"W" ); // 単語単位で探す
if( 1 == cDlgGrep.m_nGrepOutputStyle )wcscat( pOpt, L"1" ); // Grep: 出力形式
if( 2 == cDlgGrep.m_nGrepOutputStyle )wcscat( pOpt, L"2" ); // Grep: 出力形式
if( 3 == cDlgGrep.m_nGrepOutputStyle )wcscat( pOpt, L"3" );
if( cDlgGrep.m_bGrepOutputFileOnly )wcscat( pOpt, L"F" );
if( cDlgGrep.m_bGrepOutputBaseFolder )wcscat( pOpt, L"B" );
if( cDlgGrep.m_bGrepSeparateFolder )wcscat( pOpt, L"D" );
if( cDlgGrep.m_bSubFolder )wcscat_s( pOpt, L"S" ); // サブフォルダーからも検索する
if( cDlgGrep.m_sSearchOption.bLoHiCase )wcscat_s( pOpt, L"L" ); // 英大文字と英小文字を区別する
if( cDlgGrep.m_sSearchOption.bRegularExp )wcscat_s( pOpt, L"R" ); // 正規表現
if( cDlgGrep.m_nGrepOutputLineType == 1 )wcscat_s( pOpt, L"P" ); // 行を出力する
if( cDlgGrep.m_nGrepOutputLineType == 2 )wcscat_s( pOpt, L"N" ); // 否ヒット行を出力する 2014.09.23
if( cDlgGrep.m_sSearchOption.bWordOnly )wcscat_s( pOpt, L"W" ); // 単語単位で探す
if( 1 == cDlgGrep.m_nGrepOutputStyle )wcscat_s( pOpt, L"1" ); // Grep: 出力形式
if( 2 == cDlgGrep.m_nGrepOutputStyle )wcscat_s( pOpt, L"2" ); // Grep: 出力形式
if( 3 == cDlgGrep.m_nGrepOutputStyle )wcscat_s( pOpt, L"3" );
if( cDlgGrep.m_bGrepOutputFileOnly )wcscat_s( pOpt, L"F" );
if( cDlgGrep.m_bGrepOutputBaseFolder )wcscat_s( pOpt, L"B" );
if( cDlgGrep.m_bGrepSeparateFolder )wcscat_s( pOpt, L"D" );
if( cDlgGrep.m_bExcludeFileRegularExp )wcscat_s( pOpt, L"E" ); // 除外ファイルを正規表現として扱う
if( pOpt[0] != L'\0' ){
cCmdLine.AppendString( L" -GOPT=" );
cCmdLine.AppendString( pOpt );
Expand Down
47 changes: 25 additions & 22 deletions sakura_core/_main/CNormalProcess.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
Copyright (C) 2007, ryoji
Copyright (C) 2008, Uchi
Copyright (C) 2009, syat, ryoji
Copyright (C) 2018-2022, Sakura Editor Organization
Copyright (C) 2018-2026, Sakura Editor Organization

This source code is designed for sakura editor.
Please contact the copyright holder to use this code for other purpose.
Expand Down Expand Up @@ -225,27 +225,30 @@ bool CNormalProcess::InitializeProcess()
SetMainWindow( pEditWnd->GetHwnd() );
::ReleaseMutex( hMutex );
::CloseHandle( hMutex );
this->m_pcEditApp->m_pcGrepAgent->DoGrep(
&pEditWnd->GetActiveView(),
gi.bGrepReplace,
&gi.cmGrepKey,
&gi.cmGrepRep,
&gi.cmGrepFile,
&gi.cmGrepFolder,
gi.bGrepCurFolder,
gi.bGrepSubFolder,
gi.bGrepStdout,
gi.bGrepHeader,
gi.sGrepSearchOption,
gi.nGrepCharSet, // 2002/09/21 Moca
gi.nGrepOutputLineType,
gi.nGrepOutputStyle,
gi.bGrepOutputFileOnly,
gi.bGrepOutputBaseFolder,
gi.bGrepSeparateFolder,
gi.bGrepPaste,
gi.bGrepBackup
);
{
const SGrepInput grepInput{ &gi.cmGrepKey, &gi.cmGrepRep, &gi.cmGrepFile, &gi.cmGrepFolder };
SGrepOption sGrepOption;
sGrepOption.bGrepReplace = gi.bGrepReplace;
sGrepOption.bGrepSubFolder = gi.bGrepSubFolder != FALSE;
sGrepOption.bGrepStdout = gi.bGrepStdout;
sGrepOption.bGrepHeader = gi.bGrepHeader;
sGrepOption.nGrepCharSet = gi.nGrepCharSet;
sGrepOption.nGrepOutputLineType = gi.nGrepOutputLineType;
sGrepOption.nGrepOutputStyle = gi.nGrepOutputStyle;
sGrepOption.bGrepOutputFileOnly = gi.bGrepOutputFileOnly;
sGrepOption.bGrepOutputBaseFolder = gi.bGrepOutputBaseFolder;
sGrepOption.bGrepSeparateFolder = gi.bGrepSeparateFolder;
sGrepOption.bGrepPaste = gi.bGrepPaste;
sGrepOption.bGrepBackup = gi.bGrepBackup;
this->m_pcEditApp->m_pcGrepAgent->DoGrep(
&pEditWnd->GetActiveView(),
grepInput,
gi.sGrepSearchOption,
sGrepOption,
gi.bGrepCurFolder,
gi.bGrepExcludeFileRegexp
);
}
pEditWnd->m_cDlgFuncList.Refresh(); // アウトラインを再解析する
}
else{
Expand Down
Loading