mirror of
https://github.com/rizonesoft/Notepad3.git
synced 2026-06-14 21:09:05 +08:00
Merge branch 'Dev_0601' into DevMultiLingual
This commit is contained in:
commit
79496f3317
16
src/Edit.c
16
src/Edit.c
@ -3679,7 +3679,7 @@ void EditRemoveDuplicateLines(HWND hwnd, bool bRemoveEmptyLines)
|
||||
if (iSelEnd <= SciCall_PositionFromLine(iEndLine)) { --iEndLine; }
|
||||
}
|
||||
else {
|
||||
iEndLine = SciCall_GetLineCount() - 1; // last line
|
||||
iEndLine = Sci_GetLastDocLine();
|
||||
}
|
||||
|
||||
if ((iEndLine - iStartLine) <= 1) { return; }
|
||||
@ -3700,22 +3700,26 @@ void EditRemoveDuplicateLines(HWND hwnd, bool bRemoveEmptyLines)
|
||||
|
||||
for (DocLn iCurLine = iStartLine; iCurLine < iEndLine; ++iCurLine)
|
||||
{
|
||||
const DocPos iCurLnLen = SciCall_GetLine(iCurLine, pCurrentLine);
|
||||
SciCall_GetLine(iCurLine, pCurrentLine);
|
||||
const DocPos iCurLnLen = Sci_GetNetLineLength(iCurLine);
|
||||
pCurrentLine[iCurLnLen] = '\0';
|
||||
|
||||
|
||||
if (bRemoveEmptyLines || (iCurLnLen > iEmptyLnLen)) {
|
||||
|
||||
for (DocLn iCompareLine = iCurLine + 1; iCompareLine < iEndLine; ++iCompareLine)
|
||||
for (DocLn iCompareLine = iCurLine + 1; iCompareLine <= iEndLine; ++iCompareLine)
|
||||
{
|
||||
const DocPos iCmpLnLen = SciCall_GetLine(iCompareLine, NULL);
|
||||
const DocPos iCmpLnLen = Sci_GetNetLineLength(iCompareLine);
|
||||
|
||||
if (bRemoveEmptyLines || (iCmpLnLen > iEmptyLnLen)) {
|
||||
|
||||
const DocPos iBegCmpLine = SciCall_PositionFromLine(iCompareLine);
|
||||
const char* pCompareLine = SciCall_GetRangePointer(iBegCmpLine, iCmpLnLen + 2);
|
||||
const char* pCompareLine = SciCall_GetRangePointer(iBegCmpLine, iCmpLnLen + 1);
|
||||
|
||||
if (iCurLnLen == iCmpLnLen) {
|
||||
if (StringCchCompareNA(pCurrentLine, iCurLnLen, pCompareLine, iCmpLnLen) == 0) {
|
||||
SciCall_SetTargetRange(iBegCmpLine, iBegCmpLine + iCmpLnLen);
|
||||
const DocPos iLenToDel = (iCompareLine != Sci_GetLastDocLine() ? SciCall_GetLine(iCompareLine, NULL) : iCmpLnLen);
|
||||
SciCall_SetTargetRange(iBegCmpLine, iBegCmpLine + iLenToDel);
|
||||
SciCall_ReplaceTarget(0, "");
|
||||
--iCompareLine; // proactive preventing progress to avoid comparison line skip
|
||||
--iEndLine;
|
||||
|
||||
@ -390,6 +390,7 @@ DeclareSciCallR0(IsSelectionRectangle, SELECTIONISRECTANGLE, bool)
|
||||
#define Sci_GetEOLLen() ((SciCall_GetEOLMode() == SC_EOL_CRLF) ? 2 : 1)
|
||||
|
||||
#define Sci_GetCurrentLine() SciCall_LineFromPosition(SciCall_GetCurrentPos())
|
||||
#define Sci_GetLastDocLine() (SciCall_GetLineCount() - 1)
|
||||
|
||||
// length of line w/o line-end chars (full use SciCall_LineLength()
|
||||
#define Sci_GetNetLineLength(line) (SciCall_GetLineEndPosition(line) - SciCall_PositionFromLine(line))
|
||||
@ -397,6 +398,7 @@ DeclareSciCallR0(IsSelectionRectangle, SELECTIONISRECTANGLE, bool)
|
||||
///~#define Sci_GetDocEndPosition() (SciCall_GetTextLength() - 1)
|
||||
#define Sci_GetDocEndPosition() SciCall_GetTextLength()
|
||||
|
||||
|
||||
//=============================================================================
|
||||
|
||||
#endif //_NP3_SCICALL_H_
|
||||
|
||||
BIN
themes/Flat/48/Toolbar.bmp
Normal file
BIN
themes/Flat/48/Toolbar.bmp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 243 KiB |
BIN
themes/professional/32/Toolbar.bmp
Normal file
BIN
themes/professional/32/Toolbar.bmp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 108 KiB |
Loading…
Reference in New Issue
Block a user