mirror of
https://github.com/notepad-plus-plus/notepad-plus-plus.git
synced 2025-07-29 16:54:43 +02:00
[RELEASE] Notepad++ v5.0.3.
Fix the display problem in found results dialog while processing find in all opened files/find in files in a file contains a very long line. Fix not remembering the history file setting "Don't check at launch time" option bug. git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository@303 f5eea248-9336-0410-98b8-ebc06183d4e3
This commit is contained in:
parent
e6247761d0
commit
04f43d8563
@ -1,3 +1,11 @@
|
|||||||
|
Notepad++ v5.0.3 fixed bugs and added features (from v5.0.2) :
|
||||||
|
|
||||||
|
1. Fix crash bug while processing find in all opened files/find in files in a file contains a very long line.
|
||||||
|
2. Fix the display problem in found results dialog while processing find in all opened files/find in files in a file contains a very long line.
|
||||||
|
3. Fix not remembering the history file setting "Don't check at launch time" option bug.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Notepad++ v5.0.2 fixed bugs and added features (from v5.0.1) :
|
Notepad++ v5.0.2 fixed bugs and added features (from v5.0.1) :
|
||||||
|
|
||||||
1. Fix crash bug for tags match highlighting.
|
1. Fix crash bug for tags match highlighting.
|
||||||
|
@ -17,16 +17,16 @@
|
|||||||
|
|
||||||
; Define the application name
|
; Define the application name
|
||||||
!define APPNAME "Notepad++"
|
!define APPNAME "Notepad++"
|
||||||
!define APPNAMEANDVERSION "Notepad++ v5.0.2"
|
!define APPNAMEANDVERSION "Notepad++ v5.0.3"
|
||||||
|
|
||||||
!define VERSION_MAJOR 5
|
!define VERSION_MAJOR 5
|
||||||
!define VERSION_MINOR 02
|
!define VERSION_MINOR 03
|
||||||
|
|
||||||
; Main Install settings
|
; Main Install settings
|
||||||
Name "${APPNAMEANDVERSION}"
|
Name "${APPNAMEANDVERSION}"
|
||||||
InstallDir "$PROGRAMFILES\Notepad++"
|
InstallDir "$PROGRAMFILES\Notepad++"
|
||||||
InstallDirRegKey HKLM "Software\${APPNAME}" ""
|
InstallDirRegKey HKLM "Software\${APPNAME}" ""
|
||||||
OutFile "..\bin\npp.5.0.2.Installer.exe"
|
OutFile "..\bin\npp.5.0.3.Installer.exe"
|
||||||
|
|
||||||
; GetWindowsVersion
|
; GetWindowsVersion
|
||||||
;
|
;
|
||||||
|
@ -324,10 +324,7 @@ void Buffer::setDeferredReload() { //triggers a reload on the next Document acce
|
|||||||
}
|
}
|
||||||
|
|
||||||
//filemanager
|
//filemanager
|
||||||
FileManager::FileManager() :
|
|
||||||
_nextNewNumber(1), _nextBufferID(0), _pNotepadPlus(NULL), _nrBufs(0), _pscratchTilla(NULL)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void FileManager::init(Notepad_plus * pNotepadPlus, ScintillaEditView * pscratchTilla)
|
void FileManager::init(Notepad_plus * pNotepadPlus, ScintillaEditView * pscratchTilla)
|
||||||
{
|
{
|
||||||
@ -338,10 +335,7 @@ void FileManager::init(Notepad_plus * pNotepadPlus, ScintillaEditView * pscratch
|
|||||||
_pscratchTilla->execute(SCI_ADDREFDOCUMENT, 0, _scratchDocDefault);
|
_pscratchTilla->execute(SCI_ADDREFDOCUMENT, 0, _scratchDocDefault);
|
||||||
}
|
}
|
||||||
|
|
||||||
FileManager::~FileManager() {
|
|
||||||
//Release automatic with Scintilla destructor
|
|
||||||
//_pscratchTilla->execute(SCI_RELEASEDOCUMENT, 0, _scratchDocDefault);
|
|
||||||
}
|
|
||||||
|
|
||||||
void FileManager::checkFilesystemChanges() {
|
void FileManager::checkFilesystemChanges() {
|
||||||
for(size_t i = 0; i < _nrBufs; i++) {
|
for(size_t i = 0; i < _nrBufs; i++) {
|
||||||
@ -377,8 +371,7 @@ void FileManager::closeBuffer(BufferID id, ScintillaEditView * identifier) {
|
|||||||
|
|
||||||
int oldRefs = buf->_references;
|
int oldRefs = buf->_references;
|
||||||
int refs = buf->removeReference(identifier);
|
int refs = buf->removeReference(identifier);
|
||||||
//if (oldRefs != refs)
|
|
||||||
// _pscratchTilla->execute(SCI_RELEASEDOCUMENT, 0, buf->_doc); //we can release the document for the reference of container (it has changed so it was a valid operation)
|
|
||||||
if (!refs) { //buffer can be deallocated
|
if (!refs) { //buffer can be deallocated
|
||||||
_pscratchTilla->execute(SCI_RELEASEDOCUMENT, 0, buf->_doc); //release for FileManager, Document is now gone
|
_pscratchTilla->execute(SCI_RELEASEDOCUMENT, 0, buf->_doc); //release for FileManager, Document is now gone
|
||||||
_buffers.erase(_buffers.begin() + index);
|
_buffers.erase(_buffers.begin() + index);
|
||||||
|
@ -101,8 +101,8 @@ public:
|
|||||||
|
|
||||||
int getFileNameFromBuffer(BufferID id, char * fn2copy);
|
int getFileNameFromBuffer(BufferID id, char * fn2copy);
|
||||||
private:
|
private:
|
||||||
FileManager();
|
FileManager() : _nextNewNumber(1), _nextBufferID(0), _pNotepadPlus(NULL), _nrBufs(0), _pscratchTilla(NULL){};
|
||||||
~FileManager();
|
~FileManager(){};
|
||||||
static FileManager *_pSelf;
|
static FileManager *_pSelf;
|
||||||
|
|
||||||
Notepad_plus * _pNotepadPlus;
|
Notepad_plus * _pNotepadPlus;
|
||||||
@ -240,11 +240,6 @@ public :
|
|||||||
};
|
};
|
||||||
|
|
||||||
void setUnicodeMode(UniMode mode) {
|
void setUnicodeMode(UniMode mode) {
|
||||||
/*if ((_unicodeMode != mode) &&
|
|
||||||
!((_unicodeMode == uni8Bit) && (mode == uniCookie)) && \
|
|
||||||
!((_unicodeMode == uniCookie) && (mode == uni8Bit))) {
|
|
||||||
//this check excludes switch between Utf8-w/o bom and ANSI. However, that makes a change too
|
|
||||||
}*/
|
|
||||||
_unicodeMode = mode;
|
_unicodeMode = mode;
|
||||||
//_isDirty = true; //set to dirty if change unicode mode
|
//_isDirty = true; //set to dirty if change unicode mode
|
||||||
doNotify(BufferChangeUnicode | BufferChangeDirty);
|
doNotify(BufferChangeUnicode | BufferChangeDirty);
|
||||||
|
@ -1155,9 +1155,9 @@ int FindReplaceDlg::processRange(ProcessOperation op, const char *txt2find, cons
|
|||||||
case ProcessFindAll:
|
case ProcessFindAll:
|
||||||
{
|
{
|
||||||
int lineNumber = (*_ppEditView)->execute(SCI_LINEFROMPOSITION, targetStart);
|
int lineNumber = (*_ppEditView)->execute(SCI_LINEFROMPOSITION, targetStart);
|
||||||
//int lend = (*_ppEditView)->execute(SCI_GETLINEENDPOSITION, lineNumber);
|
int lend = (*_ppEditView)->execute(SCI_GETLINEENDPOSITION, lineNumber);
|
||||||
//int lstart = (*_ppEditView)->execute(SCI_POSITIONFROMLINE, lineNumber);
|
int lstart = (*_ppEditView)->execute(SCI_POSITIONFROMLINE, lineNumber);
|
||||||
int nbChar = (*_ppEditView)->execute(SCI_LINELENGTH, lineNumber);
|
int nbChar = lend - lstart;
|
||||||
bool isRealloc = false;
|
bool isRealloc = false;
|
||||||
|
|
||||||
if (_maxNbCharAllocated < nbChar) //line longer than buffer, resize buffer
|
if (_maxNbCharAllocated < nbChar) //line longer than buffer, resize buffer
|
||||||
|
@ -119,6 +119,13 @@ public:
|
|||||||
str += itoa(lineNb, lnb, 10);
|
str += itoa(lineNb, lnb, 10);
|
||||||
str += " : ";
|
str += " : ";
|
||||||
str += fi._foundLine;
|
str += fi._foundLine;
|
||||||
|
|
||||||
|
if (str.length() >= SC_SEARCHRESULT_LINEBUFFERMAXLENGTH)
|
||||||
|
{
|
||||||
|
const char * endOfLongLine = "...\r\n";
|
||||||
|
str = str.substr(0, SC_SEARCHRESULT_LINEBUFFERMAXLENGTH - strlen(endOfLongLine) - 1);
|
||||||
|
str += endOfLongLine;
|
||||||
|
}
|
||||||
setFinderReadOnly(false);
|
setFinderReadOnly(false);
|
||||||
_scintView.execute(SCI_APPENDTEXT, str.length(), (LPARAM)str.c_str());
|
_scintView.execute(SCI_APPENDTEXT, str.length(), (LPARAM)str.c_str());
|
||||||
setFinderReadOnly(true);
|
setFinderReadOnly(true);
|
||||||
|
@ -1033,11 +1033,11 @@ void ScintillaEditView::restoreCurrentPos()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ScintillaEditView::restyleBuffer() {
|
void ScintillaEditView::restyleBuffer() {
|
||||||
int end = execute(SCI_GETENDSTYLED); //style up to the last styled byte.
|
//int end = execute(SCI_GETENDSTYLED); //style up to the last styled byte.
|
||||||
if (end == 0)
|
//if (end == 0)
|
||||||
return;
|
// return;
|
||||||
execute(SCI_CLEARDOCUMENTSTYLE);
|
execute(SCI_CLEARDOCUMENTSTYLE);
|
||||||
execute(SCI_COLOURISE, 0, end);
|
execute(SCI_COLOURISE, 0, -1);
|
||||||
_currentBuffer->setNeedsLexing(false);
|
_currentBuffer->setNeedsLexing(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1122,34 +1122,41 @@ void ScintillaEditView::activateBuffer(BufferID buffer)
|
|||||||
}
|
}
|
||||||
void ScintillaEditView::bufferUpdated(Buffer * buffer, int mask) {
|
void ScintillaEditView::bufferUpdated(Buffer * buffer, int mask) {
|
||||||
//actually only care about language and lexing etc
|
//actually only care about language and lexing etc
|
||||||
if (buffer == _currentBuffer) {
|
if (buffer == _currentBuffer)
|
||||||
if (mask & BufferChangeLanguage) {
|
{
|
||||||
|
if (mask & BufferChangeLanguage)
|
||||||
|
{
|
||||||
defineDocType(buffer->getLangType());
|
defineDocType(buffer->getLangType());
|
||||||
foldAll(fold_uncollapse);
|
foldAll(fold_uncollapse);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mask & BufferChangeLexing) {
|
if (mask & BufferChangeLexing)
|
||||||
if (buffer->getNeedsLexing()) {
|
{
|
||||||
|
if (buffer->getNeedsLexing())
|
||||||
|
{
|
||||||
restyleBuffer(); //sets to false, this will apply to any other view aswell
|
restyleBuffer(); //sets to false, this will apply to any other view aswell
|
||||||
} //else nothing, otherwise infinite loop
|
} //else nothing, otherwise infinite loop
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mask & BufferChangeFormat) {
|
if (mask & BufferChangeFormat)
|
||||||
|
{
|
||||||
execute(SCI_SETEOLMODE, _currentBuffer->getFormat());
|
execute(SCI_SETEOLMODE, _currentBuffer->getFormat());
|
||||||
}
|
}
|
||||||
if (mask & BufferChangeReadonly) {
|
if (mask & BufferChangeReadonly)
|
||||||
|
{
|
||||||
execute(SCI_SETREADONLY, _currentBuffer->isReadOnly());
|
execute(SCI_SETREADONLY, _currentBuffer->isReadOnly());
|
||||||
}
|
}
|
||||||
if (mask & BufferChangeUnicode) {
|
if (mask & BufferChangeUnicode)
|
||||||
if (_currentBuffer->getUnicodeMode() == uni8Bit) { //either 0 or CJK codepage
|
{
|
||||||
if (isCJK()) {
|
if (_currentBuffer->getUnicodeMode() == uni8Bit)
|
||||||
|
{ //either 0 or CJK codepage
|
||||||
|
if (isCJK())
|
||||||
execute(SCI_SETCODEPAGE, _codepage); //you may also want to set charsets here, not yet implemented
|
execute(SCI_SETCODEPAGE, _codepage); //you may also want to set charsets here, not yet implemented
|
||||||
} else {
|
else
|
||||||
execute(SCI_SETCODEPAGE, 0);
|
execute(SCI_SETCODEPAGE, 0);
|
||||||
}
|
}
|
||||||
} else { //CP UTF8 for all unicode
|
else //CP UTF8 for all unicode
|
||||||
execute(SCI_SETCODEPAGE, SC_CP_UTF8);
|
execute(SCI_SETCODEPAGE, SC_CP_UTF8);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -601,8 +601,7 @@ BOOL CALLBACK SettingsDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM lPara
|
|||||||
switch (wParam)
|
switch (wParam)
|
||||||
{
|
{
|
||||||
case IDC_CHECK_DONTCHECKHISTORY:
|
case IDC_CHECK_DONTCHECKHISTORY:
|
||||||
nppGUI._checkHistoryFiles = isCheckedOrNot(IDC_CHECK_DONTCHECKHISTORY);
|
nppGUI._checkHistoryFiles = !isCheckedOrNot(IDC_CHECK_DONTCHECKHISTORY);
|
||||||
//::SendMessage(_hParent, WM_COMMAND, IDM_SETTING_HISTORY_DONT_CHECK, 0);
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
case IDC_CHECK_FILEAUTODETECTION:
|
case IDC_CHECK_FILEAUTODETECTION:
|
||||||
@ -617,7 +616,6 @@ BOOL CALLBACK SettingsDlg::run_dlgProc(UINT Message, WPARAM wParam, LPARAM lPara
|
|||||||
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_UPDATEGOTOEOF), isChecked);
|
::EnableWindow(::GetDlgItem(_hSelf, IDC_CHECK_UPDATEGOTOEOF), isChecked);
|
||||||
|
|
||||||
nppGUI._fileAutoDetection = isChecked?cdAutoUpdate:cdDisabled;
|
nppGUI._fileAutoDetection = isChecked?cdAutoUpdate:cdDisabled;
|
||||||
//::SendMessage(_hParent, WM_COMMAND, isChecked?IDM_SETTING_FILE_AUTODETECTION_ENABLE:IDM_SETTING_FILE_AUTODETECTION_DISABLE, 0);
|
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
|
@ -18,9 +18,9 @@
|
|||||||
#ifndef RESOURCE_H
|
#ifndef RESOURCE_H
|
||||||
#define RESOURCE_H
|
#define RESOURCE_H
|
||||||
|
|
||||||
#define NOTEPAD_PLUS_VERSION "Notepad++ v5.0.2"
|
#define NOTEPAD_PLUS_VERSION "Notepad++ v5.0.3"
|
||||||
#define VERSION_VALUE "5.02\0" // should be X.Y : ie. if VERSION_DIGITALVALUE == 4, 7, 1, 0 , then X = 4, Y = 71
|
#define VERSION_VALUE "5.03\0" // should be X.Y : ie. if VERSION_DIGITALVALUE == 4, 7, 1, 0 , then X = 4, Y = 71
|
||||||
#define VERSION_DIGITALVALUE 5, 0, 2, 0
|
#define VERSION_DIGITALVALUE 5, 0, 3, 0
|
||||||
|
|
||||||
#ifndef IDC_STATIC
|
#ifndef IDC_STATIC
|
||||||
#define IDC_STATIC -1
|
#define IDC_STATIC -1
|
||||||
|
@ -703,6 +703,7 @@ typedef sptr_t (*SciFnDirect)(sptr_t ptr, unsigned int iMessage, uptr_t wParam,
|
|||||||
#define SC_MOD_CHANGEINDICATOR 0x4000
|
#define SC_MOD_CHANGEINDICATOR 0x4000
|
||||||
#define SC_MOD_CHANGELINESTATE 0x8000
|
#define SC_MOD_CHANGELINESTATE 0x8000
|
||||||
#define SC_MODEVENTMASKALL 0xFFFF
|
#define SC_MODEVENTMASKALL 0xFFFF
|
||||||
|
#define SC_SEARCHRESULT_LINEBUFFERMAXLENGTH 1024
|
||||||
#define SCEN_CHANGE 768
|
#define SCEN_CHANGE 768
|
||||||
#define SCEN_SETFOCUS 512
|
#define SCEN_SETFOCUS 512
|
||||||
#define SCEN_KILLFOCUS 256
|
#define SCEN_KILLFOCUS 256
|
||||||
|
@ -42,10 +42,6 @@ static const char * const emptyWordListDesc[] = {
|
|||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline bool isAWordChar(const int ch) {
|
|
||||||
return ((ch > 0x20) && (ch <= 0xFF) && (ch != ' ') && (ch != '\n'));
|
|
||||||
}
|
|
||||||
|
|
||||||
inline bool isSpaceChar(char ch) {
|
inline bool isSpaceChar(char ch) {
|
||||||
return ((ch == ' ') || (ch == ' '));
|
return ((ch == ' ') || (ch == ' '));
|
||||||
};
|
};
|
||||||
@ -160,7 +156,7 @@ end :
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void ColouriseSearchResultDoc(unsigned int startPos, int length, int, WordList *keywordlists[], Accessor &styler) {
|
static void ColouriseSearchResultDoc(unsigned int startPos, int length, int, WordList *keywordlists[], Accessor &styler) {
|
||||||
char lineBuffer[1024];
|
char lineBuffer[SC_SEARCHRESULT_LINEBUFFERMAXLENGTH];
|
||||||
styler.StartAt(startPos);
|
styler.StartAt(startPos);
|
||||||
styler.StartSegment(startPos);
|
styler.StartSegment(startPos);
|
||||||
unsigned int linePos = 0;
|
unsigned int linePos = 0;
|
||||||
@ -201,7 +197,7 @@ static void FoldSearchResultDoc(unsigned int startPos, int length, int, WordList
|
|||||||
|
|
||||||
int style = styleNext;
|
int style = styleNext;
|
||||||
styleNext = styler.StyleAt(i + 1);
|
styleNext = styler.StyleAt(i + 1);
|
||||||
bool atEOL = (ch == '\r' && chNext != '\n') || (ch == '\n');
|
bool atEOL = (ch == '\n') || (ch == '\r' && chNext != '\n');
|
||||||
|
|
||||||
if (style == SCE_SEARCHRESULT_HEARDER)
|
if (style == SCE_SEARCHRESULT_HEARDER)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user