[BUG_FIXED] Fix the find in files crash issue if find what field contains 0x0A or 0xD.
git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@493 f5eea248-9336-0410-98b8-ebc06183d4e3
This commit is contained in:
parent
5b5c317872
commit
e94b452d2a
@ -62,7 +62,7 @@ Included plugins (Unicode):
|
|||||||
6. NppExport v0.2.8
|
6. NppExport v0.2.8
|
||||||
7. Doc Monitor v2.2
|
7. Doc Monitor v2.2
|
||||||
8. NppNetNote v0.1
|
8. NppNetNote v0.1
|
||||||
9. ChangeMarkers 1.2.0
|
9. ChangeMarkers 1.2.1
|
||||||
|
|
||||||
Included plugins (ANSI):
|
Included plugins (ANSI):
|
||||||
|
|
||||||
@ -75,4 +75,4 @@ Included plugins (ANSI):
|
|||||||
7. Light Explorer v1.5
|
7. Light Explorer v1.5
|
||||||
8. Doc Monitor v2.2
|
8. Doc Monitor v2.2
|
||||||
9. NppNetNote v0.1
|
9. NppNetNote v0.1
|
||||||
10. ChangeMarkers 1.2.0
|
10. ChangeMarkers 1.2.1
|
||||||
|
@ -751,6 +751,7 @@ BOOL CALLBACK FindReplaceDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM lP
|
|||||||
{
|
{
|
||||||
if (_currentStatus == FIND_DLG)
|
if (_currentStatus == FIND_DLG)
|
||||||
{
|
{
|
||||||
|
combo2ExtendedMode(IDFINDWHAT);
|
||||||
updateCombo(IDFINDWHAT);
|
updateCombo(IDFINDWHAT);
|
||||||
|
|
||||||
nppParamInst->_isFindReplacing = true;
|
nppParamInst->_isFindReplacing = true;
|
||||||
@ -762,6 +763,7 @@ BOOL CALLBACK FindReplaceDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM lP
|
|||||||
|
|
||||||
case IDC_FINDALL_CURRENTFILE :
|
case IDC_FINDALL_CURRENTFILE :
|
||||||
{
|
{
|
||||||
|
combo2ExtendedMode(IDFINDWHAT);
|
||||||
updateCombo(IDFINDWHAT);
|
updateCombo(IDFINDWHAT);
|
||||||
|
|
||||||
nppParamInst->_isFindReplacing = true;
|
nppParamInst->_isFindReplacing = true;
|
||||||
@ -786,6 +788,7 @@ BOOL CALLBACK FindReplaceDlg::run_dlgProc(UINT message, WPARAM wParam, LPARAM lP
|
|||||||
if ((lstrlen(directory) > 0) && (directory[lstrlen(directory)-1] != '\\'))
|
if ((lstrlen(directory) > 0) && (directory[lstrlen(directory)-1] != '\\'))
|
||||||
_directory += TEXT("\\");
|
_directory += TEXT("\\");
|
||||||
|
|
||||||
|
combo2ExtendedMode(IDFINDWHAT);
|
||||||
updateCombo(IDFINDWHAT);
|
updateCombo(IDFINDWHAT);
|
||||||
|
|
||||||
nppParamInst->_isFindReplacing = true;
|
nppParamInst->_isFindReplacing = true;
|
||||||
@ -1736,6 +1739,55 @@ void FindReplaceDlg::getPatterns(vector<generic_string> & patternVect)
|
|||||||
cutString(_filters.c_str(), patternVect);
|
cutString(_filters.c_str(), patternVect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FindReplaceDlg::combo2ExtendedMode(int comboID)
|
||||||
|
{
|
||||||
|
HWND hFindCombo = ::GetDlgItem(_hSelf, comboID);
|
||||||
|
if (!hFindCombo) return;
|
||||||
|
|
||||||
|
generic_string str2transform = getTextFromCombo(hFindCombo);
|
||||||
|
|
||||||
|
// Count the number of character '\n' and '\r'
|
||||||
|
size_t nbEOL = 0;
|
||||||
|
size_t str2transformLen = lstrlen(str2transform.c_str());
|
||||||
|
for (size_t i = 0 ; i < str2transformLen ; i++)
|
||||||
|
{
|
||||||
|
if (str2transform[i] == '\r' || str2transform[i] == '\n')
|
||||||
|
nbEOL++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (nbEOL)
|
||||||
|
{
|
||||||
|
TCHAR * newBuffer = new TCHAR[str2transformLen + nbEOL*2 + 1];
|
||||||
|
int j = 0;
|
||||||
|
for (size_t i = 0 ; i < str2transformLen ; i++)
|
||||||
|
{
|
||||||
|
if (str2transform[i] == '\r')
|
||||||
|
{
|
||||||
|
newBuffer[j++] = '\\';
|
||||||
|
newBuffer[j++] = 'r';
|
||||||
|
}
|
||||||
|
else if (str2transform[i] == '\n')
|
||||||
|
{
|
||||||
|
newBuffer[j++] = '\\';
|
||||||
|
newBuffer[j++] = 'n';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
newBuffer[j++] = str2transform[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
newBuffer[j++] = '\0';
|
||||||
|
setSearchText(newBuffer);
|
||||||
|
|
||||||
|
_options._searchType = FindExtended;
|
||||||
|
::SendDlgItemMessage(_hSelf, IDNORMAL, BM_SETCHECK, FALSE, 0);
|
||||||
|
::SendDlgItemMessage(_hSelf, IDEXTENDED, BM_SETCHECK, TRUE, 0);
|
||||||
|
::SendDlgItemMessage(_hSelf, IDREGEXP, BM_SETCHECK, FALSE, 0);
|
||||||
|
|
||||||
|
delete [] newBuffer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Finder::setFinderStyle()
|
void Finder::setFinderStyle()
|
||||||
{
|
{
|
||||||
// Set global styles for the finder
|
// Set global styles for the finder
|
||||||
|
@ -428,6 +428,7 @@ protected :
|
|||||||
// Call default (original) window procedure
|
// Call default (original) window procedure
|
||||||
return CallWindowProc((WNDPROC) originalFinderProc, hwnd, message, wParam, lParam);
|
return CallWindowProc((WNDPROC) originalFinderProc, hwnd, message, wParam, lParam);
|
||||||
}
|
}
|
||||||
|
void combo2ExtendedMode(int comboID);
|
||||||
|
|
||||||
private :
|
private :
|
||||||
DIALOG_TYPE _currentStatus;
|
DIALOG_TYPE _currentStatus;
|
||||||
|
@ -72,7 +72,7 @@
|
|||||||
<GUIConfig name="noUpdate">no</GUIConfig>
|
<GUIConfig name="noUpdate">no</GUIConfig>
|
||||||
<GUIConfig name="MaitainIndent">yes</GUIConfig>
|
<GUIConfig name="MaitainIndent">yes</GUIConfig>
|
||||||
<GUIConfig name="MRU">yes</GUIConfig>
|
<GUIConfig name="MRU">yes</GUIConfig>
|
||||||
<GUIConfig name="URL">0</GUIConfig>
|
<GUIConfig name="URL">2</GUIConfig>
|
||||||
<GUIConfig name="globalOverride" fg="no" bg="no" font="no" fontSize="no" bold="no" italic="no" underline="no" />
|
<GUIConfig name="globalOverride" fg="no" bg="no" font="no" fontSize="no" bold="no" italic="no" underline="no" />
|
||||||
<GUIConfig name="auto-completion" autoCAction="0" triggerFromNbChar="1" />
|
<GUIConfig name="auto-completion" autoCAction="0" triggerFromNbChar="1" />
|
||||||
<GUIConfig name="sessionExt"></GUIConfig>
|
<GUIConfig name="sessionExt"></GUIConfig>
|
||||||
|
@ -10,9 +10,9 @@ To build Notepad++ package from source code:
|
|||||||
For generating the executable file (notepad++.exe), you can use VC++ 7 / VC++ 8 or MinGW 3.0 / 2.X (a makefile is available, but not maintained).
|
For generating the executable file (notepad++.exe), you can use VC++ 7 / VC++ 8 or MinGW 3.0 / 2.X (a makefile is available, but not maintained).
|
||||||
A CMakeLists.txt (located in the PowerEditor\src directory) is available for generating the different VC project and MinGW makefile via cmake.
|
A CMakeLists.txt (located in the PowerEditor\src directory) is available for generating the different VC project and MinGW makefile via cmake.
|
||||||
|
|
||||||
For generating the the dll file (SciLexer.dll), you have 2 choices as well : VC++ 6 (from v2.5) or MinGW 3.0 / 2.X
|
For generating the the dll file (SciLexer.dll), you have 2 choices : VC++ 6 (from v2.5) or MinGW 3.0 / 2.X
|
||||||
|
|
||||||
All the binaries will be builded in the directory notepad++\PowerEditor\bin
|
All the binaries will be built in the directory notepad++\PowerEditor\bin
|
||||||
|
|
||||||
|
|
||||||
Go to Notepad++ official site for more information :
|
Go to Notepad++ official site for more information :
|
||||||
|
Loading…
Reference in New Issue
Block a user