diff options
Diffstat (limited to 'src/Editor.cxx')
-rw-r--r-- | src/Editor.cxx | 688 |
1 files changed, 341 insertions, 347 deletions
diff --git a/src/Editor.cxx b/src/Editor.cxx index ca23b0030..e3e90b5de 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -355,7 +355,7 @@ SelectionPosition Editor::ClampPositionIntoDocument(SelectionPosition sp) const if (sp.Position() < 0) { return SelectionPosition(0); } else if (sp.Position() > pdoc->Length()) { - return SelectionPosition(static_cast<Sci::Position>(pdoc->Length())); + return SelectionPosition(pdoc->Length()); } else { // If not at end of line then set offset to 0 if (!pdoc->IsLineEndPosition(sp.Position())) @@ -416,7 +416,7 @@ Sci::Position Editor::PositionFromLocation(Point pt, bool canReturnInvalid, bool SelectionPosition Editor::SPositionFromLineX(Sci::Line lineDoc, int x) { RefreshStyleData(); if (lineDoc >= pdoc->LinesTotal()) - return SelectionPosition(static_cast<Sci::Position>(pdoc->Length())); + return SelectionPosition(pdoc->Length()); //Platform::DebugPrintf("Position of (%d,%d) line = %d top=%d\n", pt.x, pt.y, line, topLine); AutoSurface surface(this); return view.SPositionFromLineX(surface, *this, lineDoc, x, vs); @@ -435,7 +435,7 @@ void Editor::SetTopLine(Sci::Line topLineNew) { topLine = topLineNew; ContainerNeedsUpdate(SC_UPDATE_V_SCROLL); } - posTopLine = static_cast<Sci::Position>(pdoc->LineStart(pcs->DocFromDisplay(topLine))); + posTopLine = pdoc->LineStart(pcs->DocFromDisplay(topLine)); } /** @@ -498,7 +498,7 @@ void Editor::RedrawSelMargin(Sci::Line line, bool allAfter) { rcMarkers.right = rcMarkers.left + vs.fixedColumnWidth; } if (line != -1) { - PRectangle rcLine = RectangleFromRange(Range(static_cast<Sci::Position>(pdoc->LineStart(line))), 0); + PRectangle rcLine = RectangleFromRange(Range(pdoc->LineStart(line)), 0); // Inflate line rectangle if there are image markers with height larger than line height if (vs.largestMarkerHeight > vs.lineHeight) { @@ -528,9 +528,9 @@ void Editor::RedrawSelMargin(Sci::Line line, bool allAfter) { PRectangle Editor::RectangleFromRange(Range r, int overlap) { const Sci::Line minLine = pcs->DisplayFromDoc( - static_cast<Sci::Line>(pdoc->LineFromPosition(r.First()))); + pdoc->SciLineFromPosition(r.First())); const Sci::Line maxLine = pcs->DisplayLastFromDoc( - static_cast<Sci::Line>(pdoc->LineFromPosition(r.Last()))); + pdoc->SciLineFromPosition(r.Last())); const PRectangle rcClientDrawing = GetClientDrawingRectangle(); PRectangle rc; const int leftTextOverlap = ((xOffset == 0) && (vs.leftMarginWidth > 0)) ? 1 : 0; @@ -572,10 +572,10 @@ void Editor::SetRectangularRange() { if (sel.selType == Selection::selThin) { xCaret = xAnchor; } - const Sci::Line lineAnchorRect = static_cast<Sci::Line>( - pdoc->LineFromPosition(sel.Rectangular().anchor.Position())); - const Sci::Line lineCaret = static_cast<Sci::Line>( - pdoc->LineFromPosition(sel.Rectangular().caret.Position())); + const Sci::Line lineAnchorRect = + pdoc->SciLineFromPosition(sel.Rectangular().anchor.Position()); + const Sci::Line lineCaret = + pdoc->SciLineFromPosition(sel.Rectangular().caret.Position()); const int increment = (lineCaret > lineAnchorRect) ? 1 : -1; for (Sci::Line line=lineAnchorRect; line != lineCaret+increment; line += increment) { SelectionRange range(SPositionFromLineX(line, xCaret), SPositionFromLineX(line, xAnchor)); @@ -629,15 +629,15 @@ void Editor::InvalidateWholeSelection() { at the beginning and end of the region lines. */ SelectionRange Editor::LineSelectionRange(SelectionPosition currentPos_, SelectionPosition anchor_) const { if (currentPos_ > anchor_) { - anchor_ = SelectionPosition(static_cast<Sci::Position>( - pdoc->LineStart(pdoc->LineFromPosition(anchor_.Position())))); - currentPos_ = SelectionPosition(static_cast<Sci::Position>( - pdoc->LineEnd(pdoc->LineFromPosition(currentPos_.Position())))); + anchor_ = SelectionPosition( + pdoc->LineStart(pdoc->LineFromPosition(anchor_.Position()))); + currentPos_ = SelectionPosition( + pdoc->LineEnd(pdoc->LineFromPosition(currentPos_.Position()))); } else { - currentPos_ = SelectionPosition(static_cast<Sci::Position>( - pdoc->LineStart(pdoc->LineFromPosition(currentPos_.Position())))); - anchor_ = SelectionPosition(static_cast<Sci::Position>( - pdoc->LineEnd(pdoc->LineFromPosition(anchor_.Position())))); + currentPos_ = SelectionPosition( + pdoc->LineStart(pdoc->LineFromPosition(currentPos_.Position()))); + anchor_ = SelectionPosition( + pdoc->LineEnd(pdoc->LineFromPosition(anchor_.Position()))); } return SelectionRange(currentPos_, anchor_); } @@ -645,7 +645,7 @@ SelectionRange Editor::LineSelectionRange(SelectionPosition currentPos_, Selecti void Editor::SetSelection(SelectionPosition currentPos_, SelectionPosition anchor_) { currentPos_ = ClampPositionIntoDocument(currentPos_); anchor_ = ClampPositionIntoDocument(anchor_); - const Sci::Line currentLine = static_cast<Sci::Line>(pdoc->LineFromPosition(currentPos_.Position())); + const Sci::Line currentLine = pdoc->SciLineFromPosition(currentPos_.Position()); SelectionRange rangeNew(currentPos_, anchor_); if (sel.selType == Selection::selLines) { rangeNew = LineSelectionRange(currentPos_, anchor_); @@ -671,7 +671,7 @@ void Editor::SetSelection(Sci::Position currentPos_, Sci::Position anchor_) { // Just move the caret on the main selection void Editor::SetSelection(SelectionPosition currentPos_) { currentPos_ = ClampPositionIntoDocument(currentPos_); - const Sci::Line currentLine = static_cast<Sci::Line>(pdoc->LineFromPosition(currentPos_.Position())); + const Sci::Line currentLine = pdoc->SciLineFromPosition(currentPos_.Position()); if (sel.Count() > 1 || !(sel.RangeMain().caret == currentPos_)) { InvalidateSelection(SelectionRange(currentPos_)); } @@ -699,8 +699,7 @@ void Editor::SetSelection(int currentPos_) { } void Editor::SetEmptySelection(SelectionPosition currentPos_) { - const Sci::Line currentLine = static_cast<Sci::Line>( - pdoc->LineFromPosition(currentPos_.Position())); + const Sci::Line currentLine = pdoc->SciLineFromPosition(currentPos_.Position()); SelectionRange rangeNew(ClampPositionIntoDocument(currentPos_)); if (sel.Count() > 1 || !(sel.RangeMain() == rangeNew)) { InvalidateSelection(rangeNew); @@ -756,9 +755,9 @@ void Editor::MultipleSelectAdd(AddNumber addNumber) { Sci::Position searchStart = it->start; const Sci::Position searchEnd = it->end; for (;;) { - Sci::Position lengthFound = static_cast<Sci::Position>(selectedText.length()); - const Sci::Position pos = static_cast<Sci::Position>(pdoc->FindText(searchStart, searchEnd, - selectedText.c_str(), searchFlags, &lengthFound)); + Sci::Position lengthFound = selectedText.length(); + const Sci::Position pos = pdoc->FindText(searchStart, searchEnd, + selectedText.c_str(), searchFlags, &lengthFound); if (pos >= 0) { sel.AddSelection(SelectionRange(pos + lengthFound, pos)); ScrollRange(sel.RangeMain()); @@ -829,8 +828,7 @@ SelectionPosition Editor::MovePositionOutsideChar(SelectionPosition pos, Sci::Po } void Editor::MovedCaret(SelectionPosition newPos, SelectionPosition previousPos, bool ensureVisible) { - const Sci::Line currentLine = static_cast<Sci::Line>( - pdoc->LineFromPosition(newPos.Position())); + const Sci::Line currentLine = pdoc->SciLineFromPosition(newPos.Position()); if (ensureVisible) { // In case in need of wrapping to ensure DisplayFromDoc works. if (currentLine >= wrapPending.start) { @@ -899,7 +897,7 @@ void Editor::MovePositionTo(Sci::Position newPos, Selection::selTypes selt, bool SelectionPosition Editor::MovePositionSoVisible(SelectionPosition pos, int moveDir) { pos = ClampPositionIntoDocument(pos); pos = MovePositionOutsideChar(pos, moveDir); - const Sci::Line lineDoc = static_cast<Sci::Line>(pdoc->LineFromPosition(pos.Position())); + const Sci::Line lineDoc = pdoc->SciLineFromPosition(pos.Position()); if (pcs->GetVisible(lineDoc)) { return pos; } else { @@ -907,12 +905,12 @@ SelectionPosition Editor::MovePositionSoVisible(SelectionPosition pos, int moveD if (moveDir > 0) { // lineDisplay is already line before fold as lines in fold use display line of line after fold lineDisplay = std::clamp(lineDisplay, static_cast<Sci::Line>(0), pcs->LinesDisplayed()); - return SelectionPosition(static_cast<Sci::Position>( - pdoc->LineStart(pcs->DocFromDisplay(lineDisplay)))); + return SelectionPosition( + pdoc->LineStart(pcs->DocFromDisplay(lineDisplay))); } else { lineDisplay = std::clamp(lineDisplay - 1, static_cast<Sci::Line>(0), pcs->LinesDisplayed()); - return SelectionPosition(static_cast<Sci::Position>( - pdoc->LineEnd(pcs->DocFromDisplay(lineDisplay)))); + return SelectionPosition( + pdoc->LineEnd(pcs->DocFromDisplay(lineDisplay))); } } } @@ -982,8 +980,8 @@ void Editor::HorizontalScrollTo(int xPos) { } void Editor::VerticalCentreCaret() { - const Sci::Line lineDoc = static_cast<Sci::Line>( - pdoc->LineFromPosition(sel.IsRectangular() ? sel.Rectangular().caret.Position() : sel.MainCaret())); + const Sci::Line lineDoc = + pdoc->SciLineFromPosition(sel.IsRectangular() ? sel.Rectangular().caret.Position() : sel.MainCaret()); const Sci::Line lineDisplay = pcs->DisplayFromDoc(lineDoc); const Sci::Line newTop = lineDisplay - (LinesOnScreen() / 2); if (topLine != newTop) { @@ -992,30 +990,24 @@ void Editor::VerticalCentreCaret() { } } -// Avoid 64 bit compiler warnings. -// Scintilla does not support text buffers larger than 2**31 -static int istrlen(const char *s) { - return static_cast<int>(s ? strlen(s) : 0); -} - void Editor::MoveSelectedLines(int lineDelta) { // if selection doesn't start at the beginning of the line, set the new start Sci::Position selectionStart = SelectionStart().Position(); - const Sci::Line startLine = static_cast<Sci::Line>(pdoc->LineFromPosition(selectionStart)); - const Sci::Position beginningOfStartLine = static_cast<Sci::Position>(pdoc->LineStart(startLine)); + const Sci::Line startLine = pdoc->SciLineFromPosition(selectionStart); + const Sci::Position beginningOfStartLine = pdoc->LineStart(startLine); selectionStart = beginningOfStartLine; // if selection doesn't end at the beginning of a line greater than that of the start, // then set it at the beginning of the next one Sci::Position selectionEnd = SelectionEnd().Position(); - const Sci::Line endLine = static_cast<Sci::Line>(pdoc->LineFromPosition(selectionEnd)); - const Sci::Position beginningOfEndLine = static_cast<Sci::Position>(pdoc->LineStart(endLine)); + const Sci::Line endLine = pdoc->SciLineFromPosition(selectionEnd); + const Sci::Position beginningOfEndLine = pdoc->LineStart(endLine); bool appendEol = false; if (selectionEnd > beginningOfEndLine || selectionStart == selectionEnd) { - selectionEnd = static_cast<Sci::Position>(pdoc->LineStart(endLine + 1)); - appendEol = (selectionEnd == pdoc->Length() && pdoc->LineFromPosition(selectionEnd) == endLine); + selectionEnd = pdoc->LineStart(endLine + 1); + appendEol = (selectionEnd == pdoc->Length() && pdoc->SciLineFromPosition(selectionEnd) == endLine); } // if there's nowhere for the selection to move @@ -1049,12 +1041,12 @@ void Editor::MoveSelectedLines(int lineDelta) { const char *eol = StringFromEOLMode(pdoc->eolMode); if (currentLine + lineDelta >= pdoc->LinesTotal()) - pdoc->InsertString(static_cast<Sci::Position>(pdoc->Length()), eol, istrlen(eol)); + pdoc->InsertString(pdoc->Length(), eol, strlen(eol)); GoToLine(currentLine + lineDelta); selectionLength = pdoc->InsertString(CurrentPosition(), selectedText.Data(), selectionLength); if (appendEol) { - const Sci::Position lengthInserted = pdoc->InsertString(CurrentPosition() + selectionLength, eol, istrlen(eol)); + const Sci::Position lengthInserted = pdoc->InsertString(CurrentPosition() + selectionLength, eol, strlen(eol)); selectionLength += lengthInserted; } SetSelection(CurrentPosition(), CurrentPosition() + selectionLength); @@ -1077,7 +1069,7 @@ void Editor::MoveCaretInsideView(bool ensureVisible) { false, false, UserVirtualSpace()), Selection::noSel, ensureVisible); } else if ((pt.y + vs.lineHeight - 1) > rcClient.bottom) { - const Sci::Position yOfLastLineFullyDisplayed = static_cast<Sci::Position>(rcClient.top) + (LinesOnScreen() - 1) * vs.lineHeight; + const ptrdiff_t yOfLastLineFullyDisplayed = static_cast<ptrdiff_t>(rcClient.top) + (LinesOnScreen() - 1) * vs.lineHeight; MovePositionTo(SPositionFromLocation( Point::FromInts(lastXChosen - xOffset, static_cast<int>(rcClient.top + yOfLastLineFullyDisplayed)), false, false, UserVirtualSpace()), @@ -1514,7 +1506,7 @@ bool Editor::WrapLines(WrapScope ws) { Sci::Line lineToWrap = wrapPending.start; Sci::Line lineToWrapEnd = std::min(wrapPending.end, pdoc->LinesTotal()); const Sci::Line lineDocTop = pcs->DocFromDisplay(topLine); - const int subLineTop = static_cast<int>(topLine - pcs->DisplayFromDoc(lineDocTop)); + const Sci::Line subLineTop = topLine - pcs->DisplayFromDoc(lineDocTop); if (ws == WrapScope::wsVisible) { lineToWrap = std::clamp(lineDocTop-5, wrapPending.start, pdoc->LinesTotal()); // Priority wrap to just after visible area. @@ -1539,7 +1531,7 @@ bool Editor::WrapLines(WrapScope ws) { lineToWrapEnd = std::min(lineToWrapEnd, lineEndNeedWrap); // Ensure all lines being wrapped are styled. - pdoc->EnsureStyledTo(static_cast<Sci::Position>(pdoc->LineStart(lineToWrapEnd))); + pdoc->EnsureStyledTo(pdoc->LineStart(lineToWrapEnd)); if (lineToWrap < lineToWrapEnd) { @@ -1560,7 +1552,8 @@ bool Editor::WrapLines(WrapScope ws) { lineToWrap++; } - goodTopLine = pcs->DisplayFromDoc(lineDocTop) + std::min(subLineTop, pcs->GetHeight(lineDocTop)-1); + goodTopLine = pcs->DisplayFromDoc(lineDocTop) + std::min( + subLineTop, static_cast<Sci::Line>(pcs->GetHeight(lineDocTop)-1)); } } @@ -1615,27 +1608,26 @@ void Editor::LinesSplit(int pixelWidth) { const PRectangle rcText = GetTextRectangle(); pixelWidth = static_cast<int>(rcText.Width()); } - const Sci::Line lineStart = static_cast<Sci::Line>(pdoc->LineFromPosition(targetStart)); - Sci::Line lineEnd = static_cast<Sci::Line>(pdoc->LineFromPosition(targetEnd)); + const Sci::Line lineStart = pdoc->SciLineFromPosition(targetStart); + Sci::Line lineEnd = pdoc->SciLineFromPosition(targetEnd); const char *eol = StringFromEOLMode(pdoc->eolMode); UndoGroup ug(pdoc); for (Sci::Line line = lineStart; line <= lineEnd; line++) { AutoSurface surface(this); AutoLineLayout ll(view.llc, view.RetrieveLineLayout(line, *this)); if (surface && ll) { - const Sci::Position posLineStart = static_cast<Sci::Position>(pdoc->LineStart(line)); + const Sci::Position posLineStart = pdoc->LineStart(line); view.LayoutLine(*this, line, surface, vs, ll, pixelWidth); Sci::Position lengthInsertedTotal = 0; for (int subLine = 1; subLine < ll->lines; subLine++) { const Sci::Position lengthInserted = pdoc->InsertString( - static_cast<int>(posLineStart + lengthInsertedTotal + - ll->LineStart(subLine)), - eol, istrlen(eol)); + posLineStart + lengthInsertedTotal + ll->LineStart(subLine), + eol, strlen(eol)); targetEnd += lengthInserted; lengthInsertedTotal += lengthInserted; } } - lineEnd = static_cast<Sci::Line>(pdoc->LineFromPosition(targetEnd)); + lineEnd = pdoc->SciLineFromPosition(targetEnd); } } } @@ -1803,7 +1795,7 @@ int Editor::TextWidth(int style, const char *text) { RefreshStyleData(); AutoSurface surface(this); if (surface) { - return static_cast<int>(surface->WidthText(vs.styles[style].font, text, istrlen(text))); + return static_cast<int>(surface->WidthText(vs.styles[style].font, text, static_cast<int>(strlen(text)))); } else { return 1; } @@ -1852,7 +1844,7 @@ void Editor::ChangeSize() { Sci::Position Editor::RealizeVirtualSpace(Sci::Position position, Sci::Position virtualSpace) { if (virtualSpace > 0) { - const Sci::Line line = static_cast<Sci::Line>(pdoc->LineFromPosition(position)); + const Sci::Line line = pdoc->SciLineFromPosition(position); const Sci::Position indent = pdoc->GetLineIndentPosition(line); if (indent == position) { return pdoc->SetLineIndentation(line, pdoc->GetLineIndentation(line) + virtualSpace); @@ -1933,7 +1925,7 @@ void Editor::AddCharUTF(const char *s, unsigned int len, bool treatAsDBCS) { if (Wrapping()) { AutoSurface surface(this); if (surface) { - if (WrapOneLine(surface, static_cast<Sci::Line>(pdoc->LineFromPosition(positionInsert)))) { + if (WrapOneLine(surface, pdoc->SciLineFromPosition(positionInsert))) { SetScrollBars(); SetVerticalScrollPos(); Redraw(); @@ -2002,7 +1994,7 @@ void Editor::ClearBeforeTentativeStart() { } } -void Editor::InsertPaste(const char *text, int len) { +void Editor::InsertPaste(const char *text, Sci::Position len) { if (multiPasteMode == SC_MULTIPASTE_ONCE) { SelectionPosition selStart = sel.Start(); selStart = RealizeVirtualSpace(selStart); @@ -2037,25 +2029,25 @@ void Editor::InsertPaste(const char *text, int len) { } } -void Editor::InsertPasteShape(const char *text, int len, PasteShape shape) { +void Editor::InsertPasteShape(const char *text, Sci::Position len, PasteShape shape) { std::string convertedText; if (convertPastes) { // Convert line endings of the paste into our local line-endings mode convertedText = Document::TransformLineEnds(text, len, pdoc->eolMode); - len = static_cast<int>(convertedText.length()); + len = convertedText.length(); text = convertedText.c_str(); } if (shape == pasteRectangular) { PasteRectangular(sel.Start(), text, len); } else { if (shape == pasteLine) { - const Sci::Position insertPos = static_cast<Sci::Position>( - pdoc->LineStart(pdoc->LineFromPosition(sel.MainCaret()))); + const Sci::Position insertPos = + pdoc->LineStart(pdoc->LineFromPosition(sel.MainCaret())); Sci::Position lengthInserted = pdoc->InsertString(insertPos, text, len); // add the newline if necessary if ((len > 0) && (text[len - 1] != '\n' && text[len - 1] != '\r')) { const char *endline = StringFromEOLMode(pdoc->eolMode); - const int length = static_cast<int>(strlen(endline)); + const Sci::Position length = strlen(endline); lengthInserted += pdoc->InsertString(insertPos + lengthInserted, endline, length); } if (sel.MainCaret() == insertPos) { @@ -2091,7 +2083,7 @@ void Editor::ClearAll() { { UndoGroup ug(pdoc); if (0 != pdoc->Length()) { - pdoc->DeleteChars(0, static_cast<Sci::Position>(pdoc->Length())); + pdoc->DeleteChars(0, pdoc->Length()); } if (!pdoc->IsReadOnly()) { pcs->Clear(); @@ -2137,7 +2129,7 @@ void Editor::PasteRectangular(SelectionPosition pos, const char *ptr, Sci::Posit } sel.Clear(); sel.RangeMain() = SelectionRange(pos); - Sci::Line line = static_cast<Sci::Line>(pdoc->LineFromPosition(sel.MainCaret())); + Sci::Line line = pdoc->SciLineFromPosition(sel.MainCaret()); UndoGroup ug(pdoc); sel.RangeMain().caret = RealizeVirtualSpace(sel.RangeMain().caret); const int xInsert = XFromPosition(sel.RangeMain().caret); @@ -2150,9 +2142,9 @@ void Editor::PasteRectangular(SelectionPosition pos, const char *ptr, Sci::Posit line++; if (line >= pdoc->LinesTotal()) { if (pdoc->eolMode != SC_EOL_LF) - pdoc->InsertString(static_cast<Sci::Position>(pdoc->Length()), "\r", 1); + pdoc->InsertString(pdoc->Length(), "\r", 1); if (pdoc->eolMode != SC_EOL_CR) - pdoc->InsertString(static_cast<Sci::Position>(pdoc->Length()), "\n", 1); + pdoc->InsertString(pdoc->Length(), "\n", 1); } // Pad the end of lines with spaces if required sel.RangeMain().caret.SetPosition(PositionFromLineX(line, xInsert)); @@ -2212,7 +2204,7 @@ void Editor::Clear() { void Editor::SelectAll() { sel.Clear(); - SetSelection(0, static_cast<Sci::Position>(pdoc->Length())); + SetSelection(0, pdoc->Length()); Redraw(); } @@ -2249,8 +2241,8 @@ void Editor::DelCharBack(bool allowLineStartDeletion) { sel.Range(r).caret.SetVirtualSpace(sel.Range(r).caret.VirtualSpace() - 1); sel.Range(r).anchor.SetVirtualSpace(sel.Range(r).caret.VirtualSpace()); } else { - const Sci::Line lineCurrentPos = static_cast<Sci::Line>( - pdoc->LineFromPosition(sel.Range(r).caret.Position())); + const Sci::Line lineCurrentPos = + pdoc->SciLineFromPosition(sel.Range(r).caret.Position()); if (allowLineStartDeletion || (pdoc->LineStart(lineCurrentPos) != sel.Range(r).caret.Position())) { if (pdoc->GetColumn(sel.Range(r).caret.Position()) <= pdoc->GetLineIndentation(lineCurrentPos) && pdoc->GetColumn(sel.Range(r).caret.Position()) > 0 && pdoc->backspaceUnindents) { @@ -2408,11 +2400,11 @@ void Editor::NotifyIndicatorClick(bool click, Sci::Position position, int modifi bool Editor::NotifyMarginClick(Point pt, int modifiers) { const int marginClicked = vs.MarginFromLocation(pt); if ((marginClicked >= 0) && vs.ms[marginClicked].sensitive) { - const Sci::Position position = static_cast<Sci::Position>(pdoc->LineStart(LineFromLocation(pt))); + const Sci::Position position = pdoc->LineStart(LineFromLocation(pt)); if ((vs.ms[marginClicked].mask & SC_MASK_FOLDERS) && (foldAutomatic & SC_AUTOMATICFOLD_CLICK)) { const bool ctrl = (modifiers & SCI_CTRL) != 0; const bool shift = (modifiers & SCI_SHIFT) != 0; - const Sci::Line lineClick = static_cast<Sci::Line>(pdoc->LineFromPosition(position)); + const Sci::Line lineClick = pdoc->SciLineFromPosition(position); if (shift && ctrl) { FoldAll(SC_FOLDACTION_TOGGLE); } else { @@ -2446,7 +2438,7 @@ bool Editor::NotifyMarginClick(Point pt, int modifiers) { bool Editor::NotifyMarginRightClick(Point pt, int modifiers) { const int marginRightClicked = vs.MarginFromLocation(pt); if ((marginRightClicked >= 0) && vs.ms[marginRightClicked].sensitive) { - const Sci::Position position = static_cast<Sci::Position>(pdoc->LineStart(LineFromLocation(pt))); + const Sci::Position position = pdoc->LineStart(LineFromLocation(pt)); SCNotification scn = {}; scn.nmhdr.code = SCN_MARGINRIGHTCLICK; scn.modifiers = modifiers; @@ -2496,7 +2488,7 @@ void Editor::NotifySavePoint(Document *, void *, bool atSavePoint) { void Editor::CheckModificationForWrap(DocModification mh) { if (mh.modificationType & (SC_MOD_INSERTTEXT | SC_MOD_DELETETEXT)) { view.llc.Invalidate(LineLayout::llCheckTextAndStyle); - const Sci::Line lineDoc = static_cast<Sci::Line>(pdoc->LineFromPosition(mh.position)); + const Sci::Line lineDoc = pdoc->SciLineFromPosition(mh.position); const Sci::Line lines = std::max(static_cast<Sci::Line>(0), mh.linesAdded); if (Wrapping()) { NeedWrapping(lineDoc, lineDoc + lines + 1); @@ -2538,8 +2530,8 @@ void Editor::NotifyModified(Document *, DocModification mh, void *) { if (mh.modificationType & SC_MOD_CHANGELINESTATE) { if (paintState == painting) { CheckForChangeOutsidePaint( - Range(static_cast<Sci::Position>(pdoc->LineStart(mh.line)), - static_cast<Sci::Position>(pdoc->LineStart(mh.line + 1)))); + Range(pdoc->LineStart(mh.line), + pdoc->LineStart(mh.line + 1))); } else { // Could check that change is before last visible line. Redraw(); @@ -2585,20 +2577,20 @@ void Editor::NotifyModified(Document *, DocModification mh, void *) { } if ((mh.modificationType & (SC_MOD_BEFOREINSERT | SC_MOD_BEFOREDELETE)) && pcs->HiddenLines()) { // Some lines are hidden so may need shown. - const Sci::Line lineOfPos = static_cast<Sci::Line>(pdoc->LineFromPosition(mh.position)); + const Sci::Line lineOfPos = pdoc->SciLineFromPosition(mh.position); Sci::Position endNeedShown = mh.position; if (mh.modificationType & SC_MOD_BEFOREINSERT) { if (pdoc->ContainsLineEnd(mh.text, mh.length) && (mh.position != pdoc->LineStart(lineOfPos))) - endNeedShown = static_cast<Sci::Position>(pdoc->LineStart(lineOfPos+1)); + endNeedShown = pdoc->LineStart(lineOfPos+1); } else if (mh.modificationType & SC_MOD_BEFOREDELETE) { // If the deletion includes any EOL then we extend the need shown area. endNeedShown = mh.position + mh.length; - Sci::Line lineLast = static_cast<Sci::Line>(pdoc->LineFromPosition(mh.position+mh.length)); + Sci::Line lineLast = pdoc->SciLineFromPosition(mh.position+mh.length); for (Sci::Line line = lineOfPos + 1; line <= lineLast; line++) { const Sci::Line lineMaxSubord = pdoc->GetLastChild(line, -1, -1); if (lineLast < lineMaxSubord) { lineLast = lineMaxSubord; - endNeedShown = static_cast<Sci::Position>(pdoc->LineEnd(lineLast)); + endNeedShown = pdoc->LineEnd(lineLast); } } } @@ -2607,7 +2599,7 @@ void Editor::NotifyModified(Document *, DocModification mh, void *) { if (mh.linesAdded != 0) { // Update contraction state for inserted and removed lines // lineOfPos should be calculated in context of state before modification, shouldn't it - Sci::Line lineOfPos = static_cast<Sci::Line>(pdoc->LineFromPosition(mh.position)); + Sci::Line lineOfPos = pdoc->SciLineFromPosition(mh.position); if (mh.position > pdoc->LineStart(lineOfPos)) lineOfPos++; // Affecting subsequent lines if (mh.linesAdded > 0) { @@ -2618,7 +2610,7 @@ void Editor::NotifyModified(Document *, DocModification mh, void *) { view.LinesAddedOrRemoved(lineOfPos, mh.linesAdded); } if (mh.modificationType & SC_MOD_CHANGEANNOTATION) { - const Sci::Line lineDoc = static_cast<Sci::Line>(pdoc->LineFromPosition(mh.position)); + const Sci::Line lineDoc = pdoc->SciLineFromPosition(mh.position); if (vs.annotationVisible) { if (pcs->SetHeight(lineDoc, static_cast<int>(pcs->GetHeight(lineDoc) + mh.annotationLinesAdded))) { SetScrollBars(); @@ -2638,7 +2630,7 @@ void Editor::NotifyModified(Document *, DocModification mh, void *) { } if (paintState == notPainting && !CanDeferToLastStep(mh)) { - QueueIdleWork(WorkNeeded::workStyle, static_cast<Sci::Position>(pdoc->Length())); + QueueIdleWork(WorkNeeded::workStyle, pdoc->Length()); Redraw(); } } else { @@ -2846,12 +2838,12 @@ void Editor::PageMove(int direction, Selection::selTypes selt, bool stuttered) { Sci::Line topLineNew; SelectionPosition newPos; - const Sci::Line currentLine = static_cast<Sci::Line>(pdoc->LineFromPosition(sel.MainCaret())); + const Sci::Line currentLine = pdoc->SciLineFromPosition(sel.MainCaret()); const Sci::Line topStutterLine = topLine + caretYSlop; - const Sci::Line bottomStutterLine = static_cast<Sci::Line>( - pdoc->LineFromPosition(PositionFromLocation( + const Sci::Line bottomStutterLine = + pdoc->SciLineFromPosition(PositionFromLocation( Point::FromInts(lastXChosen - xOffset, direction * vs.lineHeight * static_cast<int>(LinesToScroll())))) - - caretYSlop - 1); + - caretYSlop - 1; if (stuttered && (direction < 0 && currentLine > topStutterLine)) { topLineNew = topLine; @@ -2908,15 +2900,15 @@ void Editor::ChangeCaseOfSelection(int caseMapping) { } const size_t endDifferenceText = sText.size() - 1 - lastDifferenceText; pdoc->DeleteChars( - static_cast<Sci::Position>(currentNoVS.Start().Position() + firstDifference), - static_cast<Sci::Position>(rangeBytes - firstDifference - endDifferenceText)); - const Sci::Position lengthChange = static_cast<Sci::Position>(lastDifferenceMapped - firstDifference + 1); + currentNoVS.Start().Position() + firstDifference, + rangeBytes - firstDifference - endDifferenceText); + const Sci::Position lengthChange = lastDifferenceMapped - firstDifference + 1; const Sci::Position lengthInserted = pdoc->InsertString( - static_cast<int>(currentNoVS.Start().Position() + firstDifference), + currentNoVS.Start().Position() + firstDifference, sMapped.c_str() + firstDifference, lengthChange); // Automatic movement changes selection so reset to exactly the same as it was. - const Sci::Position diffSizes = static_cast<Sci::Position>(sMapped.size() - sText.size()) + lengthInserted - lengthChange; + const Sci::Position diffSizes = sMapped.size() - sText.size() + lengthInserted - lengthChange; if (diffSizes != 0) { if (current.anchor > current.caret) current.anchor.Add(diffSizes); @@ -2930,36 +2922,34 @@ void Editor::ChangeCaseOfSelection(int caseMapping) { } void Editor::LineTranspose() { - const Sci::Line line = static_cast<Sci::Line>(pdoc->LineFromPosition(sel.MainCaret())); + const Sci::Line line = pdoc->SciLineFromPosition(sel.MainCaret()); if (line > 0) { UndoGroup ug(pdoc); - const Sci::Position startPrevious = static_cast<Sci::Position>(pdoc->LineStart(line - 1)); - const std::string linePrevious = RangeText(startPrevious, - static_cast<Sci::Position>(pdoc->LineEnd(line - 1))); + const Sci::Position startPrevious = pdoc->LineStart(line - 1); + const std::string linePrevious = RangeText(startPrevious, pdoc->LineEnd(line - 1)); - Sci::Position startCurrent = static_cast<Sci::Position>(pdoc->LineStart(line)); - const std::string lineCurrent = RangeText(startCurrent, - static_cast<Sci::Position>(pdoc->LineEnd(line))); + Sci::Position startCurrent = pdoc->LineStart(line); + const std::string lineCurrent = RangeText(startCurrent, pdoc->LineEnd(line)); - pdoc->DeleteChars(startCurrent, static_cast<Sci::Position>(lineCurrent.length())); - pdoc->DeleteChars(startPrevious, static_cast<Sci::Position>(linePrevious.length())); - startCurrent -= static_cast<Sci::Position>(linePrevious.length()); + pdoc->DeleteChars(startCurrent, lineCurrent.length()); + pdoc->DeleteChars(startPrevious, linePrevious.length()); + startCurrent -= linePrevious.length(); startCurrent += pdoc->InsertString(startPrevious, lineCurrent.c_str(), - static_cast<Sci::Position>(lineCurrent.length())); + lineCurrent.length()); pdoc->InsertString(startCurrent, linePrevious.c_str(), - static_cast<Sci::Position>(linePrevious.length())); + linePrevious.length()); // Move caret to start of current line MovePositionTo(SelectionPosition(startCurrent)); } } void Editor::LineReverse() { - const Sci::Line lineStart = static_cast<Sci::Line>( - pdoc->LineFromPosition(sel.RangeMain().Start().Position())); - const Sci::Line lineEnd = static_cast<Sci::Line>( - pdoc->LineFromPosition(sel.RangeMain().End().Position()-1)); + const Sci::Line lineStart = + pdoc->SciLineFromPosition(sel.RangeMain().Start().Position()); + const Sci::Line lineEnd = + pdoc->SciLineFromPosition(sel.RangeMain().End().Position()-1); const Sci::Line lineDiff = lineEnd - lineStart; if (lineDiff <= 0) return; @@ -2967,12 +2957,12 @@ void Editor::LineReverse() { for (Sci::Line i=(lineDiff+1)/2-1; i>=0; --i) { const Sci::Line lineNum2 = lineEnd - i; const Sci::Line lineNum1 = lineStart + i; - Sci::Position lineStart2 = static_cast<Sci::Position>(pdoc->LineStart(lineNum2)); - const Sci::Position lineStart1 = static_cast<Sci::Position>(pdoc->LineStart(lineNum1)); - const std::string line2 = RangeText(lineStart2, static_cast<Sci::Position>(pdoc->LineEnd(lineNum2))); - const std::string line1 = RangeText(lineStart1, static_cast<Sci::Position>(pdoc->LineEnd(lineNum1))); - const Sci::Position lineLen2 = static_cast<Sci::Position>(line2.length()); - const Sci::Position lineLen1 = static_cast<Sci::Position>(line1.length()); + Sci::Position lineStart2 = pdoc->LineStart(lineNum2); + const Sci::Position lineStart1 = pdoc->LineStart(lineNum1); + const std::string line2 = RangeText(lineStart2, pdoc->LineEnd(lineNum2)); + const std::string line1 = RangeText(lineStart1, pdoc->LineEnd(lineNum1)); + const Sci::Position lineLen2 = line2.length(); + const Sci::Position lineLen1 = line1.length(); pdoc->DeleteChars(lineStart2, lineLen2); pdoc->DeleteChars(lineStart1, lineLen1); lineStart2 -= lineLen1; @@ -2980,8 +2970,8 @@ void Editor::LineReverse() { pdoc->InsertString(lineStart1, line2.c_str(), lineLen2); } // Wholly select all affected lines - sel.RangeMain() = SelectionRange(static_cast<Sci::Position>(pdoc->LineStart(lineStart)), - static_cast<Sci::Position>(pdoc->LineStart(lineEnd+1))); + sel.RangeMain() = SelectionRange(pdoc->LineStart(lineStart), + pdoc->LineStart(lineEnd+1)); } void Editor::Duplicate(bool forLine) { @@ -2990,31 +2980,31 @@ void Editor::Duplicate(bool forLine) { } UndoGroup ug(pdoc); const char *eol = ""; - int eolLen = 0; + Sci::Position eolLen = 0; if (forLine) { eol = StringFromEOLMode(pdoc->eolMode); - eolLen = istrlen(eol); + eolLen = strlen(eol); } for (size_t r=0; r<sel.Count(); r++) { SelectionPosition start = sel.Range(r).Start(); SelectionPosition end = sel.Range(r).End(); if (forLine) { - const Sci::Line line = static_cast<Sci::Line>(pdoc->LineFromPosition(sel.Range(r).caret.Position())); - start = SelectionPosition(static_cast<Sci::Position>(pdoc->LineStart(line))); - end = SelectionPosition(static_cast<Sci::Position>(pdoc->LineEnd(line))); + const Sci::Line line = pdoc->SciLineFromPosition(sel.Range(r).caret.Position()); + start = SelectionPosition(pdoc->LineStart(line)); + end = SelectionPosition(pdoc->LineEnd(line)); } std::string text = RangeText(start.Position(), end.Position()); Sci::Position lengthInserted = eolLen; if (forLine) lengthInserted = pdoc->InsertString(end.Position(), eol, eolLen); - pdoc->InsertString(end.Position() + lengthInserted, text.c_str(), static_cast<Sci::Position>(text.length())); + pdoc->InsertString(end.Position() + lengthInserted, text.c_str(), text.length()); } if (sel.Count() && sel.IsRectangular()) { SelectionPosition last = sel.Last(); if (forLine) { - const Sci::Line line = static_cast<Sci::Line>(pdoc->LineFromPosition(last.Position())); + const Sci::Line line = pdoc->SciLineFromPosition(last.Position()); last = SelectionPosition(last.Position() + - static_cast<Sci::Position>(pdoc->LineStart(line+1) - pdoc->LineStart(line))); + pdoc->LineStart(line+1) - pdoc->LineStart(line)); } if (sel.Rectangular().anchor > sel.Rectangular().caret) sel.Rectangular().anchor = last; @@ -3048,7 +3038,7 @@ void Editor::NewLine() { sel.Range(r).ClearVirtualSpace(); const char *eol = StringFromEOLMode(pdoc->eolMode); const Sci::Position positionInsert = sel.Range(r).caret.Position(); - const Sci::Position insertLength = pdoc->InsertString(positionInsert, eol, istrlen(eol)); + const Sci::Position insertLength = pdoc->InsertString(positionInsert, eol, strlen(eol)); if (insertLength > 0) { sel.Range(r) = SelectionRange(positionInsert + insertLength); countInsertions++; @@ -3083,8 +3073,8 @@ SelectionPosition Editor::PositionUpOrDown(SelectionPosition spStart, int direct int skipLines = 0; if (vs.annotationVisible) { - const Sci::Line lineDoc = static_cast<Sci::Line>(pdoc->LineFromPosition(spStart.Position())); - const Point ptStartLine = LocationFromPosition(static_cast<Sci::Position>(pdoc->LineStart(lineDoc))); + const Sci::Line lineDoc = pdoc->SciLineFromPosition(spStart.Position()); + const Point ptStartLine = LocationFromPosition(pdoc->LineStart(lineDoc)); const int subLine = static_cast<int>(pt.y - ptStartLine.y) / vs.lineHeight; if (direction < 0 && subLine == 0) { @@ -3179,7 +3169,7 @@ void Editor::ParaUpOrDown(int direction, Selection::selTypes selt) { const Sci::Position savedPos = sel.MainCaret(); do { MovePositionTo(SelectionPosition(direction > 0 ? pdoc->ParaDown(sel.MainCaret()) : pdoc->ParaUp(sel.MainCaret())), selt); - lineDoc = static_cast<Sci::Line>(pdoc->LineFromPosition(sel.MainCaret())); + lineDoc = pdoc->SciLineFromPosition(sel.MainCaret()); if (direction > 0) { if (sel.MainCaret() >= pdoc->Length() && !pcs->GetVisible(lineDoc)) { if (selt == Selection::noSel) { @@ -3375,7 +3365,7 @@ int Editor::HorizontalMove(unsigned int iMessage) { case SCI_HOMERECTEXTEND: case SCI_HOMEEXTEND: // only when sel.IsRectangular() && sel.MoveExtends() spCaret = SelectionPosition( - static_cast<Sci::Position>(pdoc->LineStart(pdoc->LineFromPosition(spCaret.Position())))); + pdoc->LineStart(pdoc->LineFromPosition(spCaret.Position()))); break; case SCI_VCHOMERECTEXTEND: case SCI_VCHOMEEXTEND: // only when sel.IsRectangular() && sel.MoveExtends() @@ -3397,7 +3387,7 @@ int Editor::HorizontalMove(unsigned int iMessage) { switch (iMessage) { case SCI_HOME: selAtLimit = SelectionPosition( - static_cast<Sci::Position>(pdoc->LineStart(pdoc->LineFromPosition(selAtLimit.Position())))); + pdoc->LineStart(pdoc->LineFromPosition(selAtLimit.Position()))); break; case SCI_VCHOME: selAtLimit = SelectionPosition(pdoc->VCHomePosition(selAtLimit.Position())); @@ -3460,7 +3450,7 @@ int Editor::HorizontalMove(unsigned int iMessage) { case SCI_HOME: case SCI_HOMEEXTEND: spCaret = SelectionPosition( - static_cast<Sci::Position>(pdoc->LineStart(pdoc->LineFromPosition(spCaret.Position())))); + pdoc->LineStart(pdoc->LineFromPosition(spCaret.Position()))); break; case SCI_HOMEDISPLAY: case SCI_HOMEDISPLAYEXTEND: @@ -3471,7 +3461,7 @@ int Editor::HorizontalMove(unsigned int iMessage) { spCaret = MovePositionSoVisible(StartEndDisplayLine(spCaret.Position(), true), -1); if (spCaretNow <= spCaret) spCaret = SelectionPosition( - static_cast<Sci::Position>(pdoc->LineStart(pdoc->LineFromPosition(spCaret.Position())))); + pdoc->LineStart(pdoc->LineFromPosition(spCaret.Position()))); break; case SCI_VCHOME: case SCI_VCHOMEEXTEND: @@ -3621,13 +3611,13 @@ int Editor::DelWordOrLine(unsigned int iMessage) { break; case SCI_DELLINELEFT: rangeDelete = Range( - static_cast<Sci::Position>(pdoc->LineStart(pdoc->LineFromPosition(sel.Range(r).caret.Position()))), + pdoc->LineStart(pdoc->LineFromPosition(sel.Range(r).caret.Position())), sel.Range(r).caret.Position()); break; case SCI_DELLINERIGHT: rangeDelete = Range( sel.Range(r).caret.Position(), - static_cast<Sci::Position>(pdoc->LineEnd(pdoc->LineFromPosition(sel.Range(r).caret.Position())))); + pdoc->LineEnd(pdoc->LineFromPosition(sel.Range(r).caret.Position()))); break; } if (!RangeContainsProtected(rangeDelete.start, rangeDelete.end)) { @@ -3738,11 +3728,11 @@ int Editor::KeyCommand(unsigned int iMessage) { SetLastXChosen(); break; case SCI_DOCUMENTEND: - MovePositionTo(static_cast<Sci::Position>(pdoc->Length())); + MovePositionTo(pdoc->Length()); SetLastXChosen(); break; case SCI_DOCUMENTENDEXTEND: - MovePositionTo(static_cast<Sci::Position>(pdoc->Length()), Selection::selStream); + MovePositionTo(pdoc->Length(), Selection::selStream); SetLastXChosen(); break; case SCI_STUTTEREDPAGEUP: @@ -3848,26 +3838,26 @@ int Editor::KeyCommand(unsigned int iMessage) { return DelWordOrLine(iMessage); case SCI_LINECOPY: { - const Sci::Line lineStart = static_cast<Sci::Line>(pdoc->LineFromPosition(SelectionStart().Position())); - const Sci::Line lineEnd = static_cast<Sci::Line>(pdoc->LineFromPosition(SelectionEnd().Position())); - CopyRangeToClipboard(static_cast<Sci::Position>(pdoc->LineStart(lineStart)), - static_cast<Sci::Position>(pdoc->LineStart(lineEnd + 1))); + const Sci::Line lineStart = pdoc->SciLineFromPosition(SelectionStart().Position()); + const Sci::Line lineEnd = pdoc->SciLineFromPosition(SelectionEnd().Position()); + CopyRangeToClipboard(pdoc->LineStart(lineStart), + pdoc->LineStart(lineEnd + 1)); } break; case SCI_LINECUT: { - const Sci::Line lineStart = static_cast<Sci::Line>(pdoc->LineFromPosition(SelectionStart().Position())); - const Sci::Line lineEnd = static_cast<Sci::Line>(pdoc->LineFromPosition(SelectionEnd().Position())); - const Sci::Position start = static_cast<Sci::Position>(pdoc->LineStart(lineStart)); - const Sci::Position end = static_cast<Sci::Position>(pdoc->LineStart(lineEnd + 1)); + const Sci::Line lineStart = pdoc->SciLineFromPosition(SelectionStart().Position()); + const Sci::Line lineEnd = pdoc->SciLineFromPosition(SelectionEnd().Position()); + const Sci::Position start = pdoc->LineStart(lineStart); + const Sci::Position end = pdoc->LineStart(lineEnd + 1); SetSelection(start, end); Cut(); SetLastXChosen(); } break; case SCI_LINEDELETE: { - const Sci::Line line = static_cast<Sci::Line>(pdoc->LineFromPosition(sel.MainCaret())); - const Sci::Position start = static_cast<Sci::Position>(pdoc->LineStart(line)); - const Sci::Position end = static_cast<Sci::Position>(pdoc->LineStart(line + 1)); + const Sci::Line line = pdoc->SciLineFromPosition(sel.MainCaret()); + const Sci::Position start = pdoc->LineStart(line); + const Sci::Position end = pdoc->LineStart(line + 1); pdoc->DeleteChars(start, end - start); } break; @@ -3920,10 +3910,10 @@ int Editor::KeyDownWithModifiers(int key, int modifiers, bool *consumed) { void Editor::Indent(bool forwards) { UndoGroup ug(pdoc); for (size_t r=0; r<sel.Count(); r++) { - const Sci::Line lineOfAnchor = static_cast<Sci::Line>( - pdoc->LineFromPosition(sel.Range(r).anchor.Position())); + const Sci::Line lineOfAnchor = + pdoc->SciLineFromPosition(sel.Range(r).anchor.Position()); Sci::Position caretPosition = sel.Range(r).caret.Position(); - const Sci::Line lineCurrentPos = static_cast<Sci::Line>(pdoc->LineFromPosition(caretPosition)); + const Sci::Line lineCurrentPos = pdoc->SciLineFromPosition(caretPosition); if (lineOfAnchor == lineCurrentPos) { if (forwards) { pdoc->DeleteChars(sel.Range(r).Start().Position(), sel.Range(r).Length()); @@ -3946,7 +3936,7 @@ void Editor::Indent(bool forwards) { numSpaces = pdoc->tabInChars; const std::string spaceText(numSpaces, ' '); const Sci::Position lengthInserted = pdoc->InsertString(caretPosition, spaceText.c_str(), - static_cast<Sci::Position>(spaceText.length())); + spaceText.length()); sel.Range(r) = SelectionRange(caretPosition + lengthInserted); } } @@ -3970,9 +3960,9 @@ void Editor::Indent(bool forwards) { } } else { // Multiline const Sci::Position anchorPosOnLine = sel.Range(r).anchor.Position() - - static_cast<Sci::Position>(pdoc->LineStart(lineOfAnchor)); + pdoc->LineStart(lineOfAnchor); const Sci::Position currentPosPosOnLine = caretPosition - - static_cast<Sci::Position>(pdoc->LineStart(lineCurrentPos)); + pdoc->LineStart(lineCurrentPos); // Multiple lines selected so indent / dedent const Sci::Line lineTopSel = std::min(lineOfAnchor, lineCurrentPos); Sci::Line lineBottomSel = std::max(lineOfAnchor, lineCurrentPos); @@ -3981,18 +3971,18 @@ void Editor::Indent(bool forwards) { pdoc->Indent(forwards, lineBottomSel, lineTopSel); if (lineOfAnchor < lineCurrentPos) { if (currentPosPosOnLine == 0) - sel.Range(r) = SelectionRange(static_cast<Sci::Position>(pdoc->LineStart(lineCurrentPos)), - static_cast<Sci::Position>(pdoc->LineStart(lineOfAnchor))); + sel.Range(r) = SelectionRange(pdoc->LineStart(lineCurrentPos), + pdoc->LineStart(lineOfAnchor)); else - sel.Range(r) = SelectionRange(static_cast<Sci::Position>(pdoc->LineStart(lineCurrentPos + 1)), - static_cast<Sci::Position>(pdoc->LineStart(lineOfAnchor))); + sel.Range(r) = SelectionRange(pdoc->LineStart(lineCurrentPos + 1), + pdoc->LineStart(lineOfAnchor)); } else { if (anchorPosOnLine == 0) - sel.Range(r) = SelectionRange(static_cast<Sci::Position>(pdoc->LineStart(lineCurrentPos)), - static_cast<Sci::Position>(pdoc->LineStart(lineOfAnchor))); + sel.Range(r) = SelectionRange(pdoc->LineStart(lineCurrentPos), + pdoc->LineStart(lineOfAnchor)); else - sel.Range(r) = SelectionRange(static_cast<Sci::Position>(pdoc->LineStart(lineCurrentPos)), - static_cast<Sci::Position>(pdoc->LineStart(lineOfAnchor + 1))); + sel.Range(r) = SelectionRange(pdoc->LineStart(lineCurrentPos), + pdoc->LineStart(lineOfAnchor + 1)); } } } @@ -4024,7 +4014,7 @@ Sci::Position Editor::FindText( sptr_t lParam) { ///< @c Sci_TextToFind structure: The text to search for in the given range. Sci_TextToFind *ft = reinterpret_cast<Sci_TextToFind *>(lParam); - Sci::Position lengthFound = istrlen(ft->lpstrText); + Sci::Position lengthFound = strlen(ft->lpstrText); if (!pdoc->HasCaseFolder()) pdoc->SetCaseFolder(CaseFolderForEncoding()); try { @@ -4038,7 +4028,7 @@ Sci::Position Editor::FindText( ft->chrgText.cpMin = static_cast<Sci_PositionCR>(pos); ft->chrgText.cpMax = static_cast<Sci_PositionCR>(pos + lengthFound); } - return static_cast<int>(pos); + return pos; } catch (RegexError &) { errorStatus = SC_STATUS_WARN_REGEX; return -1; @@ -4073,12 +4063,12 @@ Sci::Position Editor::SearchText( const char *txt = reinterpret_cast<char *>(lParam); Sci::Position pos; - Sci::Position lengthFound = istrlen(txt); + Sci::Position lengthFound = strlen(txt); if (!pdoc->HasCaseFolder()) pdoc->SetCaseFolder(CaseFolderForEncoding()); try { if (iMessage == SCI_SEARCHNEXT) { - pos = pdoc->FindText(searchAnchor, static_cast<Sci::Position>(pdoc->Length()), txt, + pos = pdoc->FindText(searchAnchor, pdoc->Length(), txt, static_cast<int>(wParam), &lengthFound); } else { @@ -4143,7 +4133,7 @@ void Editor::GoToLine(Sci::Line lineNo) { lineNo = pdoc->LinesTotal(); if (lineNo < 0) lineNo = 0; - SetEmptySelection(static_cast<Sci::Position>(pdoc->LineStart(lineNo))); + SetEmptySelection(pdoc->LineStart(lineNo)); ShowCaretAtCurrentPosition(); EnsureCaretVisible(); } @@ -4171,9 +4161,9 @@ std::string Editor::RangeText(Sci::Position start, Sci::Position end) const { void Editor::CopySelectionRange(SelectionText *ss, bool allowLineCopy) { if (sel.Empty()) { if (allowLineCopy) { - const Sci::Line currentLine = static_cast<Sci::Line>(pdoc->LineFromPosition(sel.MainCaret())); - const Sci::Position start = static_cast<Sci::Position>(pdoc->LineStart(currentLine)); - const Sci::Position end = static_cast<Sci::Position>(pdoc->LineEnd(currentLine)); + const Sci::Line currentLine = pdoc->SciLineFromPosition(sel.MainCaret()); + const Sci::Position start = pdoc->LineStart(currentLine); + const Sci::Position end = pdoc->LineEnd(currentLine); std::string text = RangeText(start, end); if (pdoc->eolMode != SC_EOL_LF) @@ -4212,7 +4202,7 @@ void Editor::CopyRangeToClipboard(Sci::Position start, Sci::Position end) { CopyToClipboard(selectedText); } -void Editor::CopyText(int length, const char *text) { +void Editor::CopyText(size_t length, const char *text) { SelectionText selectedText; selectedText.Copy(std::string(text, length), pdoc->dbcsCodePage, vs.styles[STYLE_DEFAULT].characterSet, false, false); @@ -4298,14 +4288,14 @@ void Editor::DropAt(SelectionPosition position, const char *value, size_t length std::string convertedText = Document::TransformLineEnds(value, lengthValue, pdoc->eolMode); if (rectangular) { - PasteRectangular(position, convertedText.c_str(), static_cast<Sci::Position>(convertedText.length())); + PasteRectangular(position, convertedText.c_str(), convertedText.length()); // Should try to select new rectangle but it may not be a rectangle now so just select the drop position SetEmptySelection(position); } else { position = MovePositionOutsideChar(position, sel.MainCaret() - position.Position()); position = RealizeVirtualSpace(position); const Sci::Position lengthInserted = pdoc->InsertString( - position.Position(), convertedText.c_str(), static_cast<int>(convertedText.length())); + position.Position(), convertedText.c_str(), convertedText.length()); if (lengthInserted > 0) { SelectionPosition posAfterInsertion = position; posAfterInsertion.Add(lengthInserted); @@ -4391,17 +4381,17 @@ void Editor::TrimAndSetSelection(Sci::Position currentPos_, Sci::Position anchor void Editor::LineSelection(Sci::Position lineCurrentPos_, Sci::Position lineAnchorPos_, bool wholeLine) { Sci::Position selCurrentPos, selAnchorPos; if (wholeLine) { - const Sci::Line lineCurrent_ = static_cast<Sci::Line>(pdoc->LineFromPosition(lineCurrentPos_)); - const Sci::Line lineAnchor_ = static_cast<Sci::Line>(pdoc->LineFromPosition(lineAnchorPos_)); + const Sci::Line lineCurrent_ = pdoc->SciLineFromPosition(lineCurrentPos_); + const Sci::Line lineAnchor_ = pdoc->SciLineFromPosition(lineAnchorPos_); if (lineAnchorPos_ < lineCurrentPos_) { - selCurrentPos = static_cast<Sci::Position>(pdoc->LineStart(lineCurrent_ + 1)); - selAnchorPos = static_cast<Sci::Position>(pdoc->LineStart(lineAnchor_)); + selCurrentPos = pdoc->LineStart(lineCurrent_ + 1); + selAnchorPos = pdoc->LineStart(lineAnchor_); } else if (lineAnchorPos_ > lineCurrentPos_) { - selCurrentPos = static_cast<Sci::Position>(pdoc->LineStart(lineCurrent_)); - selAnchorPos = static_cast<Sci::Position>(pdoc->LineStart(lineAnchor_ + 1)); + selCurrentPos = pdoc->LineStart(lineCurrent_); + selAnchorPos = pdoc->LineStart(lineAnchor_ + 1); } else { // Same line, select it - selCurrentPos = static_cast<Sci::Position>(pdoc->LineStart(lineAnchor_ + 1)); - selAnchorPos = static_cast<Sci::Position>(pdoc->LineStart(lineAnchor_)); + selCurrentPos = pdoc->LineStart(lineAnchor_ + 1); + selAnchorPos = pdoc->LineStart(lineAnchor_); } } else { if (lineAnchorPos_ < lineCurrentPos_) { @@ -4884,7 +4874,7 @@ void Editor::ButtonUpWithModifiers(Point pt, unsigned int curTime, int modifiers const SelectionPosition selEnd = SelectionEnd(); if (selStart < selEnd) { if (drag.Length()) { - const int length = static_cast<int>(drag.Length()); + const Sci::Position length = drag.Length(); if (modifiers & SCI_CTRL) { const Sci::Position lengthInserted = pdoc->InsertString( newPos.Position(), drag.Data(), length); @@ -4892,15 +4882,15 @@ void Editor::ButtonUpWithModifiers(Point pt, unsigned int curTime, int modifiers SetSelection(newPos.Position(), newPos.Position() + lengthInserted); } } else if (newPos < selStart) { - pdoc->DeleteChars(selStart.Position(), static_cast<int>(drag.Length())); + pdoc->DeleteChars(selStart.Position(), drag.Length()); const Sci::Position lengthInserted = pdoc->InsertString( newPos.Position(), drag.Data(), length); if (lengthInserted > 0) { SetSelection(newPos.Position(), newPos.Position() + lengthInserted); } } else if (newPos > selEnd) { - pdoc->DeleteChars(selStart.Position(), static_cast<int>(drag.Length())); - newPos.Add(-static_cast<int>(drag.Length())); + pdoc->DeleteChars(selStart.Position(), drag.Length()); + newPos.Add(-static_cast<Sci::Position>(drag.Length())); const Sci::Position lengthInserted = pdoc->InsertString( newPos.Position(), drag.Data(), length); if (lengthInserted > 0) { @@ -5023,9 +5013,9 @@ Sci::Position Editor::PositionAfterArea(PRectangle rcArea) const { // detect multiline comment additions and heals single line comments const Sci::Line lineAfter = TopLineOfMain() + static_cast<Sci::Line>(rcArea.bottom - 1) / vs.lineHeight + 1; if (lineAfter < pcs->LinesDisplayed()) - return static_cast<Sci::Position>(pdoc->LineStart(pcs->DocFromDisplay(lineAfter) + 1)); + return pdoc->LineStart(pcs->DocFromDisplay(lineAfter) + 1); else - return static_cast<Sci::Position>(pdoc->Length()); + return pdoc->Length(); } // Style to a position within the view. If this causes a change at end of last line then @@ -5059,9 +5049,9 @@ Sci::Position Editor::PositionAfterMaxStyling(Sci::Position posMax, bool scrolli const Sci::Line linesToStyle = std::clamp(static_cast<int>(secondsAllowed / pdoc->durationStyleOneLine), 10, 0x10000); const Sci::Line stylingMaxLine = std::min( - static_cast<Sci::Line>(pdoc->LineFromPosition(pdoc->GetEndStyled()) + linesToStyle), + pdoc->SciLineFromPosition(pdoc->GetEndStyled()) + linesToStyle, pdoc->LinesTotal()); - return std::min(static_cast<Sci::Position>(pdoc->LineStart(stylingMaxLine)), posMax); + return std::min(pdoc->LineStart(stylingMaxLine), posMax); } void Editor::StartIdleStyling(bool truncatedLastStyling) { @@ -5097,7 +5087,7 @@ void Editor::StyleAreaBounded(PRectangle rcArea, bool scrolling) { void Editor::IdleStyling() { const Sci::Position posAfterArea = PositionAfterArea(GetClientRectangle()); const Sci::Position endGoal = (idleStyling >= SC_IDLESTYLING_AFTERVISIBLE) ? - static_cast<Sci::Position>(pdoc->Length()) : posAfterArea; + pdoc->Length() : posAfterArea; const Sci::Position posAfterMax = PositionAfterMaxStyling(endGoal, false); pdoc->StyleToAdjustingLineDuration(posAfterMax); if (pdoc->GetEndStyled() >= endGoal) { @@ -5109,7 +5099,7 @@ void Editor::IdleWork() { // Style the line after the modification as this allows modifications that change just the // line of the modification to heal instead of propagating to the rest of the window. if (workNeeded.items & WorkNeeded::workStyle) { - StyleToPositionInView(static_cast<Sci::Position>(pdoc->LineStart(pdoc->LineFromPosition(workNeeded.upTo) + 2))); + StyleToPositionInView(pdoc->LineStart(pdoc->LineFromPosition(workNeeded.upTo) + 2)); } NotifyUpdateUI(); workNeeded.Reset(); @@ -5305,8 +5295,8 @@ void Editor::FoldLine(Sci::Line line, int action) { pcs->SetExpanded(line, false); pcs->SetVisible(line + 1, lineMaxSubord, false); - const Sci::Line lineCurrent = static_cast<Sci::Line>( - pdoc->LineFromPosition(sel.MainCaret())); + const Sci::Line lineCurrent = + pdoc->SciLineFromPosition(sel.MainCaret()); if (lineCurrent > line && lineCurrent <= lineMaxSubord) { // This does not re-expand the fold EnsureCaretVisible(); @@ -5425,7 +5415,7 @@ void Editor::EnsureLineVisible(Sci::Line lineDoc, bool enforcePolicy) { } void Editor::FoldAll(int action) { - pdoc->EnsureStyledTo(static_cast<Sci::Position>(pdoc->Length())); + pdoc->EnsureStyledTo(pdoc->Length()); const Sci::Line maxLine = pdoc->LinesTotal(); bool expanding = action == SC_FOLDACTION_EXPAND; if (action == SC_FOLDACTION_TOGGLE) { @@ -5446,7 +5436,7 @@ void Editor::FoldAll(int action) { } } } else { - for (int line = 0; line < maxLine; line++) { + for (Sci::Line line = 0; line < maxLine; line++) { const int level = pdoc->GetLevel(line); if ((level & SC_FOLDLEVELHEADERFLAG) && (SC_FOLDLEVELBASE == LevelNumber(level))) { @@ -5514,8 +5504,8 @@ void Editor::FoldChanged(Sci::Line line, int levelNow, int levelPrev) { void Editor::NeedShown(Sci::Position pos, Sci::Position len) { if (foldAutomatic & SC_AUTOMATICFOLD_SHOW) { - const Sci::Line lineStart = static_cast<Sci::Line>(pdoc->LineFromPosition(pos)); - const Sci::Line lineEnd = static_cast<Sci::Line>(pdoc->LineFromPosition(pos+len)); + const Sci::Line lineStart = pdoc->SciLineFromPosition(pos); + const Sci::Line lineEnd = pdoc->SciLineFromPosition(pos+len); for (Sci::Line line = lineStart; line <= lineEnd; line++) { EnsureLineVisible(line, false); } @@ -5545,7 +5535,7 @@ Sci::Position Editor::GetTag(char *tagValue, int tagNumber) { Sci::Position Editor::ReplaceTarget(bool replacePatterns, const char *text, Sci::Position length) { UndoGroup ug(pdoc); if (length == -1) - length = istrlen(text); + length = strlen(text); if (replacePatterns) { text = pdoc->SubstituteByPosition(text, &length); if (!text) { @@ -5571,7 +5561,7 @@ int Editor::CodePage() const { return 0; } -int Editor::WrapCount(int line) { +Sci::Line Editor::WrapCount(Sci::Line line) { AutoSurface surface(this); AutoLineLayout ll(view.llc, view.RetrieveLineLayout(line, *this)); @@ -5705,27 +5695,27 @@ void Editor::SetSelectionNMessage(unsigned int iMessage, uptr_t wParam, sptr_t l switch (iMessage) { case SCI_SETSELECTIONNCARET: - sel.Range(wParam).caret.SetPosition(static_cast<int>(lParam)); + sel.Range(wParam).caret.SetPosition(static_cast<Sci::Position>(lParam)); break; case SCI_SETSELECTIONNANCHOR: - sel.Range(wParam).anchor.SetPosition(static_cast<int>(lParam)); + sel.Range(wParam).anchor.SetPosition(static_cast<Sci::Position>(lParam)); break; case SCI_SETSELECTIONNCARETVIRTUALSPACE: - sel.Range(wParam).caret.SetVirtualSpace(static_cast<int>(lParam)); + sel.Range(wParam).caret.SetVirtualSpace(static_cast<Sci::Position>(lParam)); break; case SCI_SETSELECTIONNANCHORVIRTUALSPACE: - sel.Range(wParam).anchor.SetVirtualSpace(static_cast<int>(lParam)); + sel.Range(wParam).anchor.SetVirtualSpace(static_cast<Sci::Position>(lParam)); break; case SCI_SETSELECTIONNSTART: - sel.Range(wParam).anchor.SetPosition(static_cast<int>(lParam)); + sel.Range(wParam).anchor.SetPosition(static_cast<Sci::Position>(lParam)); break; case SCI_SETSELECTIONNEND: - sel.Range(wParam).caret.SetPosition(static_cast<int>(lParam)); + sel.Range(wParam).caret.SetPosition(static_cast<Sci::Position>(lParam)); break; } @@ -5783,10 +5773,10 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { if (lParam == 0) return 0; UndoGroup ug(pdoc); - pdoc->DeleteChars(0, static_cast<Sci::Position>(pdoc->Length())); + pdoc->DeleteChars(0, pdoc->Length()); SetEmptySelection(0); const char *text = CharPtrFromSPtr(lParam); - pdoc->InsertString(0, text, istrlen(text)); + pdoc->InsertString(0, text, strlen(text)); return 1; } @@ -5819,11 +5809,11 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { break; case SCI_COPYRANGE: - CopyRangeToClipboard(static_cast<int>(wParam), static_cast<int>(lParam)); + CopyRangeToClipboard(static_cast<Sci::Position>(wParam), static_cast<Sci::Position>(lParam)); break; case SCI_COPYTEXT: - CopyText(static_cast<int>(wParam), CharPtrFromSPtr(lParam)); + CopyText(wParam, CharPtrFromSPtr(lParam)); break; case SCI_PASTE: @@ -5856,14 +5846,14 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { return topLine; case SCI_SETFIRSTVISIBLELINE: - ScrollTo(static_cast<int>(wParam)); + ScrollTo(static_cast<Sci::Line>(wParam)); break; case SCI_GETLINE: { // Risk of overwriting the end of the buffer - const Sci::Position lineStart = static_cast<Sci::Position>( - pdoc->LineStart(static_cast<Sci::Line>(wParam))); - const Sci::Position lineEnd = static_cast<Sci::Position>( - pdoc->LineStart(static_cast<Sci::Line>(wParam + 1))); + const Sci::Position lineStart = + pdoc->LineStart(static_cast<Sci::Line>(wParam)); + const Sci::Position lineEnd = + pdoc->LineStart(static_cast<Sci::Line>(wParam + 1)); if (lParam == 0) { return lineEnd - lineStart; } @@ -5888,7 +5878,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { Sci::Position nStart = static_cast<Sci::Position>(wParam); Sci::Position nEnd = static_cast<Sci::Position>(lParam); if (nEnd < 0) - nEnd = static_cast<Sci::Position>(pdoc->Length()); + nEnd = pdoc->Length(); if (nStart < 0) nStart = nEnd; // Remove selection InvalidateSelection(SelectionRange(nStart, nEnd)); @@ -5918,12 +5908,12 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { } case SCI_LINEFROMPOSITION: - if (static_cast<int>(wParam) < 0) + if (static_cast<Sci::Position>(wParam) < 0) return 0; - return pdoc->LineFromPosition(static_cast<int>(wParam)); + return pdoc->LineFromPosition(static_cast<Sci::Position>(wParam)); case SCI_POSITIONFROMLINE: - if (static_cast<int>(wParam) < 0) + if (static_cast<Sci::Position>(wParam) < 0) wParam = pdoc->LineFromPosition(SelectionStart().Position()); if (wParam == 0) return 0; // Even if there is no text, there is a first line that starts at 0 @@ -5931,14 +5921,14 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { return -1; //if (wParam > pdoc->LineFromPosition(pdoc->Length())) // Useful test, anyway... // return -1; - return pdoc->LineStart(static_cast<int>(wParam)); + return pdoc->LineStart(static_cast<Sci::Position>(wParam)); // Replacement of the old Scintilla interpretation of EM_LINELENGTH case SCI_LINELENGTH: - if ((static_cast<int>(wParam) < 0) || - (static_cast<int>(wParam) > pdoc->LineFromPosition(pdoc->Length()))) + if ((static_cast<Sci::Position>(wParam) < 0) || + (static_cast<Sci::Position>(wParam) > pdoc->LineFromPosition(pdoc->Length()))) return 0; - return pdoc->LineStart(static_cast<int>(wParam) + 1) - pdoc->LineStart(static_cast<int>(wParam)); + return pdoc->LineStart(static_cast<Sci::Position>(wParam) + 1) - pdoc->LineStart(static_cast<Sci::Position>(wParam)); case SCI_REPLACESEL: { if (lParam == 0) @@ -5947,7 +5937,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { ClearSelection(); const char *replacement = CharPtrFromSPtr(lParam); const Sci::Position lengthInserted = pdoc->InsertString( - sel.MainCaret(), replacement, istrlen(replacement)); + sel.MainCaret(), replacement, strlen(replacement)); SetEmptySelection(sel.MainCaret() + lengthInserted); SetLastXChosen(); EnsureCaretVisible(); @@ -5955,27 +5945,27 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { break; case SCI_SETTARGETSTART: - targetStart = static_cast<int>(wParam); + targetStart = static_cast<Sci::Position>(wParam); break; case SCI_GETTARGETSTART: return targetStart; case SCI_SETTARGETEND: - targetEnd = static_cast<int>(wParam); + targetEnd = static_cast<Sci::Position>(wParam); break; case SCI_GETTARGETEND: return targetEnd; case SCI_SETTARGETRANGE: - targetStart = static_cast<int>(wParam); - targetEnd = static_cast<int>(lParam); + targetStart = static_cast<Sci::Position>(wParam); + targetEnd = static_cast<Sci::Position>(lParam); break; case SCI_TARGETWHOLEDOCUMENT: targetStart = 0; - targetEnd = static_cast<Sci::Position>(pdoc->Length()); + targetEnd = pdoc->Length(); break; case SCI_TARGETFROMSELECTION: @@ -6016,14 +6006,15 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { return GetTag(CharPtrFromSPtr(lParam), static_cast<int>(wParam)); case SCI_POSITIONBEFORE: - return pdoc->MovePositionOutsideChar(static_cast<int>(wParam) - 1, -1, true); + return pdoc->MovePositionOutsideChar(static_cast<Sci::Position>(wParam) - 1, -1, true); case SCI_POSITIONAFTER: - return pdoc->MovePositionOutsideChar(static_cast<int>(wParam) + 1, 1, true); + return pdoc->MovePositionOutsideChar(static_cast<Sci::Position>(wParam) + 1, 1, true); case SCI_POSITIONRELATIVE: - return std::clamp(static_cast<int>(pdoc->GetRelativePosition(static_cast<int>(wParam), static_cast<int>(lParam))), - 0, static_cast<int>(pdoc->Length())); + return std::clamp(pdoc->GetRelativePosition( + static_cast<Sci::Position>(wParam), static_cast<Sci::Position>(lParam)), + static_cast<Sci::Position>(0), pdoc->Length()); case SCI_LINESCROLL: ScrollTo(topLine + static_cast<Sci::Line>(lParam)); @@ -6062,7 +6053,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { if (lParam < 0) { return 0; } else { - const Point pt = LocationFromPosition(static_cast<int>(lParam)); + const Point pt = LocationFromPosition(static_cast<Sci::Position>(lParam)); // Convert to view-relative return static_cast<int>(pt.x) - vs.textStart + vs.fixedColumnWidth; } @@ -6071,7 +6062,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { if (lParam < 0) { return 0; } else { - const Point pt = LocationFromPosition(static_cast<int>(lParam)); + const Point pt = LocationFromPosition(static_cast<Sci::Position>(lParam)); return static_cast<int>(pt.y); } @@ -6084,10 +6075,10 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { Sci_TextRange *tr = reinterpret_cast<Sci_TextRange *>(lParam); Sci::Position cpMax = static_cast<Sci::Position>(tr->chrg.cpMax); if (cpMax == -1) - cpMax = static_cast<Sci::Position>(pdoc->Length()); + cpMax = pdoc->Length(); PLATFORM_ASSERT(cpMax <= pdoc->Length()); - int len = static_cast<int>(cpMax - tr->chrg.cpMin); // No -1 as cpMin and cpMax are referring to inter character positions - pdoc->GetCharRange(tr->lpstrText, static_cast<int>(tr->chrg.cpMin), len); + Sci::Position len = cpMax - tr->chrg.cpMin; // No -1 as cpMin and cpMax are referring to inter character positions + pdoc->GetCharRange(tr->lpstrText, tr->chrg.cpMin, len); // Spec says copied text is terminated with a NUL tr->lpstrText[len] = '\0'; return len; // Not including NUL @@ -6138,11 +6129,11 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { if (lParam == 0) return 0; Sci::Position insertPos = static_cast<Sci::Position>(wParam); - if (static_cast<int>(wParam) == -1) + if (insertPos == -1) insertPos = CurrentPosition(); Sci::Position newCurrent = CurrentPosition(); const char *sz = CharPtrFromSPtr(lParam); - const Sci::Position lengthInserted = pdoc->InsertString(insertPos, sz, istrlen(sz)); + const Sci::Position lengthInserted = pdoc->InsertString(insertPos, sz, strlen(sz)); if (newCurrent > insertPos) newCurrent += lengthInserted; SetEmptySelection(newCurrent); @@ -6151,12 +6142,12 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { case SCI_CHANGEINSERTION: PLATFORM_ASSERT(lParam); - pdoc->ChangeInsertion(CharPtrFromSPtr(lParam), static_cast<int>(wParam)); + pdoc->ChangeInsertion(CharPtrFromSPtr(lParam), static_cast<Sci::Position>(wParam)); return 0; case SCI_APPENDTEXT: - pdoc->InsertString(static_cast<Sci::Position>(pdoc->Length()), - CharPtrFromSPtr(lParam), static_cast<int>(wParam)); + pdoc->InsertString(pdoc->Length(), + CharPtrFromSPtr(lParam), static_cast<Sci::Position>(wParam)); return 0; case SCI_CLEARALL: @@ -6164,7 +6155,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { return 0; case SCI_DELETERANGE: - pdoc->DeleteChars(static_cast<int>(wParam), static_cast<int>(lParam)); + pdoc->DeleteChars(static_cast<Sci::Position>(wParam), static_cast<Sci::Position>(lParam)); return 0; case SCI_CLEARDOCUMENTSTYLE: @@ -6240,7 +6231,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { case SCI_SETCURRENTPOS: if (sel.IsRectangular()) { - sel.Rectangular().caret.SetPosition(static_cast<int>(wParam)); + sel.Rectangular().caret.SetPosition(static_cast<Sci::Position>(wParam)); SetRectangularRange(); Redraw(); } else { @@ -6279,7 +6270,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { return sel.LimitsForRectangularElseMain().end.Position(); case SCI_SETEMPTYSELECTION: - SetEmptySelection(static_cast<int>(wParam)); + SetEmptySelection(static_cast<Sci::Position>(wParam)); break; case SCI_SETPRINTMAGNIFICATION: @@ -6304,10 +6295,10 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { return view.printParameters.wrapState; case SCI_GETSTYLEAT: - if (static_cast<int>(wParam) >= pdoc->Length()) + if (static_cast<Sci::Position>(wParam) >= pdoc->Length()) return 0; else - return pdoc->StyleAt(static_cast<int>(wParam)); + return pdoc->StyleAt(static_cast<Sci::Position>(wParam)); case SCI_REDO: Redo(); @@ -6327,8 +6318,8 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { Sci_TextRange *tr = reinterpret_cast<Sci_TextRange *>(lParam); int iPlace = 0; for (long iChar = tr->chrg.cpMin; iChar < tr->chrg.cpMax; iChar++) { - tr->lpstrText[iPlace++] = pdoc->CharAt(static_cast<int>(iChar)); - tr->lpstrText[iPlace++] = pdoc->StyleAt(static_cast<int>(iChar)); + tr->lpstrText[iPlace++] = pdoc->CharAt(iChar); + tr->lpstrText[iPlace++] = pdoc->StyleAt(iChar); } tr->lpstrText[iPlace] = '\0'; tr->lpstrText[iPlace + 1] = '\0'; @@ -6386,18 +6377,18 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { true, true); case SCI_GOTOLINE: - GoToLine(static_cast<int>(wParam)); + GoToLine(static_cast<Sci::Line>(wParam)); break; case SCI_GOTOPOS: - SetEmptySelection(static_cast<int>(wParam)); + SetEmptySelection(static_cast<Sci::Position>(wParam)); EnsureCaretVisible(); break; case SCI_GETCURLINE: { - const Sci::Line lineCurrentPos = static_cast<Sci::Line>(pdoc->LineFromPosition(sel.MainCaret())); - const Sci::Position lineStart = static_cast<Sci::Position>(pdoc->LineStart(lineCurrentPos)); - const Sci::Position lineEnd = static_cast<Sci::Position>(pdoc->LineStart(lineCurrentPos + 1)); + const Sci::Line lineCurrentPos = pdoc->SciLineFromPosition(sel.MainCaret()); + const Sci::Position lineStart = pdoc->LineStart(lineCurrentPos); + const Sci::Position lineEnd = pdoc->LineStart(lineCurrentPos + 1); if (lParam == 0) { return 1 + lineEnd - lineStart; } @@ -6437,20 +6428,20 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { return pdoc->GetLineEndTypesActive(); case SCI_STARTSTYLING: - pdoc->StartStyling(static_cast<int>(wParam)); + pdoc->StartStyling(static_cast<Sci::Position>(wParam)); break; case SCI_SETSTYLING: - if (static_cast<int>(wParam) < 0) + if (static_cast<Sci::Position>(wParam) < 0) errorStatus = SC_STATUS_FAILURE; else - pdoc->SetStyleFor(static_cast<int>(wParam), static_cast<char>(lParam)); + pdoc->SetStyleFor(static_cast<Sci::Position>(wParam), static_cast<char>(lParam)); break; case SCI_SETSTYLINGEX: // Specify a complete styling buffer if (lParam == 0) return 0; - pdoc->SetStyles(static_cast<int>(wParam), CharPtrFromSPtr(lParam)); + pdoc->SetStyles(static_cast<Sci::Position>(wParam), CharPtrFromSPtr(lParam)); break; case SCI_SETBUFFEREDDRAW: @@ -6500,21 +6491,21 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { return pdoc->tabInChars; case SCI_CLEARTABSTOPS: - if (view.ClearTabstops(static_cast<int>(wParam))) { - const DocModification mh(SC_MOD_CHANGETABSTOPS, 0, 0, 0, 0, static_cast<int>(wParam)); + if (view.ClearTabstops(static_cast<Sci::Line>(wParam))) { + const DocModification mh(SC_MOD_CHANGETABSTOPS, 0, 0, 0, 0, static_cast<Sci::Line>(wParam)); NotifyModified(pdoc, mh, NULL); } break; case SCI_ADDTABSTOP: - if (view.AddTabstop(static_cast<int>(wParam), static_cast<int>(lParam))) { - const DocModification mh(SC_MOD_CHANGETABSTOPS, 0, 0, 0, 0, static_cast<int>(wParam)); + if (view.AddTabstop(static_cast<Sci::Line>(wParam), static_cast<int>(lParam))) { + const DocModification mh(SC_MOD_CHANGETABSTOPS, 0, 0, 0, 0, static_cast<Sci::Line>(wParam)); NotifyModified(pdoc, mh, NULL); } break; case SCI_GETNEXTTABSTOP: - return view.GetNextTabstop(static_cast<int>(wParam), static_cast<int>(lParam)); + return view.GetNextTabstop(static_cast<Sci::Line>(wParam), static_cast<int>(lParam)); case SCI_SETINDENT: pdoc->indentInChars = static_cast<int>(wParam); @@ -6537,14 +6528,14 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { return pdoc->useTabs; case SCI_SETLINEINDENTATION: - pdoc->SetLineIndentation(static_cast<int>(wParam), static_cast<int>(lParam)); + pdoc->SetLineIndentation(static_cast<Sci::Line>(wParam), static_cast<Sci::Position>(lParam)); break; case SCI_GETLINEINDENTATION: - return pdoc->GetLineIndentation(static_cast<int>(wParam)); + return pdoc->GetLineIndentation(static_cast<Sci::Line>(wParam)); case SCI_GETLINEINDENTPOSITION: - return pdoc->GetLineIndentPosition(static_cast<int>(wParam)); + return pdoc->GetLineIndentPosition(static_cast<Sci::Line>(wParam)); case SCI_SETTABINDENTS: pdoc->tabIndents = wParam != 0; @@ -6569,13 +6560,13 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { return dwellDelay; case SCI_WORDSTARTPOSITION: - return pdoc->ExtendWordSelect(static_cast<int>(wParam), -1, lParam != 0); + return pdoc->ExtendWordSelect(static_cast<Sci::Position>(wParam), -1, lParam != 0); case SCI_WORDENDPOSITION: - return pdoc->ExtendWordSelect(static_cast<int>(wParam), 1, lParam != 0); + return pdoc->ExtendWordSelect(static_cast<Sci::Position>(wParam), 1, lParam != 0); case SCI_ISRANGEWORD: - return pdoc->IsWordAt(static_cast<int>(wParam), static_cast<int>(lParam)); + return pdoc->IsWordAt(static_cast<Sci::Position>(wParam), static_cast<Sci::Position>(lParam)); case SCI_SETIDLESTYLING: idleStyling = static_cast<int>(wParam); @@ -6651,7 +6642,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { case SCI_SETSCROLLWIDTH: PLATFORM_ASSERT(wParam > 0); - if ((wParam > 0) && (wParam != static_cast<unsigned int >(scrollWidth))) { + if ((wParam > 0) && (wParam != static_cast<unsigned int>(scrollWidth))) { view.lineWidthMaxSeen = 0; scrollWidth = static_cast<int>(wParam); SetScrollBars(); @@ -6711,10 +6702,10 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { break; case SCI_GETCOLUMN: - return pdoc->GetColumn(static_cast<int>(wParam)); + return pdoc->GetColumn(static_cast<Sci::Position>(wParam)); case SCI_FINDCOLUMN: - return pdoc->FindColumn(static_cast<int>(wParam), static_cast<int>(lParam)); + return pdoc->FindColumn(static_cast<Sci::Line>(wParam), static_cast<Sci::Position>(lParam)); case SCI_SETHSCROLLBAR : if (horizontalScrollBarVisible != (wParam != 0)) { @@ -6759,7 +6750,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { return highlightGuideColumn; case SCI_GETLINEENDPOSITION: - return pdoc->LineEnd(static_cast<int>(wParam)); + return pdoc->LineEnd(static_cast<Sci::Line>(wParam)); case SCI_SETCODEPAGE: if (ValidCodePage(static_cast<int>(wParam))) { @@ -6834,16 +6825,16 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { InvalidateStyleRedraw(); break; case SCI_MARKERADD: { - const int markerID = pdoc->AddMark(static_cast<int>(wParam), static_cast<int>(lParam)); + const int markerID = pdoc->AddMark(static_cast<Sci::Line>(wParam), static_cast<int>(lParam)); return markerID; } case SCI_MARKERADDSET: if (lParam != 0) - pdoc->AddMarkSet(static_cast<int>(wParam), static_cast<int>(lParam)); + pdoc->AddMarkSet(static_cast<Sci::Line>(wParam), static_cast<int>(lParam)); break; case SCI_MARKERDELETE: - pdoc->DeleteMark(static_cast<int>(wParam), static_cast<int>(lParam)); + pdoc->DeleteMark(static_cast<Sci::Line>(wParam), static_cast<int>(lParam)); break; case SCI_MARKERDELETEALL: @@ -6851,13 +6842,13 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { break; case SCI_MARKERGET: - return pdoc->GetMark(static_cast<int>(wParam)); + return pdoc->GetMark(static_cast<Sci::Line>(wParam)); case SCI_MARKERNEXT: - return pdoc->MarkerNext(static_cast<int>(wParam), static_cast<int>(lParam)); + return pdoc->MarkerNext(static_cast<Sci::Line>(wParam), static_cast<int>(lParam)); case SCI_MARKERPREVIOUS: { - for (int iLine = static_cast<int>(wParam); iLine >= 0; iLine--) { + for (Sci::Line iLine = static_cast<Sci::Line>(wParam); iLine >= 0; iLine--) { if ((pdoc->GetMark(iLine) & lParam) != 0) return iLine; } @@ -7037,10 +7028,10 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { #endif case SCI_SETLINESTATE: - return pdoc->SetLineState(static_cast<int>(wParam), static_cast<int>(lParam)); + return pdoc->SetLineState(static_cast<Sci::Line>(wParam), static_cast<int>(lParam)); case SCI_GETLINESTATE: - return pdoc->GetLineState(static_cast<int>(wParam)); + return pdoc->GetLineState(static_cast<Sci::Line>(wParam)); case SCI_GETMAXLINESTATE: return pdoc->GetMaxLineState(); @@ -7067,7 +7058,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { case SCI_GETCARETLINEBACK: return vs.caretLineBackground.AsLong(); case SCI_SETCARETLINEBACK: - vs.caretLineBackground = static_cast<int>(wParam); + vs.caretLineBackground = ColourDesired(static_cast<long>(wParam)); InvalidateStyleRedraw(); break; case SCI_GETCARETLINEBACKALPHA: @@ -7080,55 +7071,55 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { // Folding messages case SCI_VISIBLEFROMDOCLINE: - return pcs->DisplayFromDoc(static_cast<int>(wParam)); + return pcs->DisplayFromDoc(static_cast<Sci::Line>(wParam)); case SCI_DOCLINEFROMVISIBLE: - return pcs->DocFromDisplay(static_cast<int>(wParam)); + return pcs->DocFromDisplay(static_cast<Sci::Line>(wParam)); case SCI_WRAPCOUNT: - return WrapCount(static_cast<int>(wParam)); + return WrapCount(static_cast<Sci::Line>(wParam)); case SCI_SETFOLDLEVEL: { - const int prev = pdoc->SetLevel(static_cast<int>(wParam), static_cast<int>(lParam)); + const int prev = pdoc->SetLevel(static_cast<Sci::Line>(wParam), static_cast<int>(lParam)); if (prev != static_cast<int>(lParam)) RedrawSelMargin(); return prev; } case SCI_GETFOLDLEVEL: - return pdoc->GetLevel(static_cast<int>(wParam)); + return pdoc->GetLevel(static_cast<Sci::Line>(wParam)); case SCI_GETLASTCHILD: - return pdoc->GetLastChild(static_cast<int>(wParam), static_cast<int>(lParam)); + return pdoc->GetLastChild(static_cast<Sci::Line>(wParam), static_cast<int>(lParam)); case SCI_GETFOLDPARENT: - return pdoc->GetFoldParent(static_cast<int>(wParam)); + return pdoc->GetFoldParent(static_cast<Sci::Line>(wParam)); case SCI_SHOWLINES: - pcs->SetVisible(static_cast<int>(wParam), static_cast<int>(lParam), true); + pcs->SetVisible(static_cast<Sci::Line>(wParam), static_cast<Sci::Line>(lParam), true); SetScrollBars(); Redraw(); break; case SCI_HIDELINES: if (wParam > 0) - pcs->SetVisible(static_cast<int>(wParam), static_cast<int>(lParam), false); + pcs->SetVisible(static_cast<Sci::Line>(wParam), static_cast<Sci::Line>(lParam), false); SetScrollBars(); Redraw(); break; case SCI_GETLINEVISIBLE: - return pcs->GetVisible(static_cast<int>(wParam)); + return pcs->GetVisible(static_cast<Sci::Line>(wParam)); case SCI_GETALLLINESVISIBLE: return pcs->HiddenLines() ? 0 : 1; case SCI_SETFOLDEXPANDED: - SetFoldExpanded(static_cast<int>(wParam), lParam != 0); + SetFoldExpanded(static_cast<Sci::Line>(wParam), lParam != 0); break; case SCI_GETFOLDEXPANDED: - return pcs->GetExpanded(static_cast<int>(wParam)); + return pcs->GetExpanded(static_cast<Sci::Line>(wParam)); case SCI_SETAUTOMATICFOLD: foldAutomatic = static_cast<int>(wParam); @@ -7143,8 +7134,8 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { break; case SCI_TOGGLEFOLDSHOWTEXT: - pcs->SetFoldDisplayText(static_cast<int>(wParam), CharPtrFromSPtr(lParam)); - FoldLine(static_cast<int>(wParam), SC_FOLDACTION_TOGGLE); + pcs->SetFoldDisplayText(static_cast<Sci::Line>(wParam), CharPtrFromSPtr(lParam)); + FoldLine(static_cast<Sci::Line>(wParam), SC_FOLDACTION_TOGGLE); break; case SCI_FOLDDISPLAYTEXTSETSTYLE: @@ -7153,15 +7144,15 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { break; case SCI_TOGGLEFOLD: - FoldLine(static_cast<int>(wParam), SC_FOLDACTION_TOGGLE); + FoldLine(static_cast<Sci::Line>(wParam), SC_FOLDACTION_TOGGLE); break; case SCI_FOLDLINE: - FoldLine(static_cast<int>(wParam), static_cast<int>(lParam)); + FoldLine(static_cast<Sci::Line>(wParam), static_cast<int>(lParam)); break; case SCI_FOLDCHILDREN: - FoldExpand(static_cast<int>(wParam), static_cast<int>(lParam), pdoc->GetLevel(static_cast<int>(wParam))); + FoldExpand(static_cast<Sci::Line>(wParam), static_cast<int>(lParam), pdoc->GetLevel(static_cast<int>(wParam))); break; case SCI_FOLDALL: @@ -7169,22 +7160,22 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { break; case SCI_EXPANDCHILDREN: - FoldExpand(static_cast<int>(wParam), SC_FOLDACTION_EXPAND, static_cast<int>(lParam)); + FoldExpand(static_cast<Sci::Line>(wParam), SC_FOLDACTION_EXPAND, static_cast<int>(lParam)); break; case SCI_CONTRACTEDFOLDNEXT: - return ContractedFoldNext(static_cast<int>(wParam)); + return ContractedFoldNext(static_cast<Sci::Line>(wParam)); case SCI_ENSUREVISIBLE: - EnsureLineVisible(static_cast<int>(wParam), false); + EnsureLineVisible(static_cast<Sci::Line>(wParam), false); break; case SCI_ENSUREVISIBLEENFORCEPOLICY: - EnsureLineVisible(static_cast<int>(wParam), true); + EnsureLineVisible(static_cast<Sci::Line>(wParam), true); break; case SCI_SCROLLRANGE: - ScrollRange(SelectionRange(static_cast<int>(wParam), static_cast<int>(lParam))); + ScrollRange(SelectionRange(static_cast<Sci::Position>(wParam), static_cast<Sci::Position>(lParam))); break; case SCI_SEARCHANCHOR: @@ -7393,24 +7384,26 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { return pdoc->decorations->GetCurrentValue(); case SCI_INDICATORFILLRANGE: - pdoc->DecorationFillRange(static_cast<int>(wParam), pdoc->decorations->GetCurrentValue(), static_cast<int>(lParam)); + pdoc->DecorationFillRange(static_cast<Sci::Position>(wParam), + pdoc->decorations->GetCurrentValue(), static_cast<Sci::Position>(lParam)); break; case SCI_INDICATORCLEARRANGE: - pdoc->DecorationFillRange(static_cast<int>(wParam), 0, static_cast<int>(lParam)); + pdoc->DecorationFillRange(static_cast<Sci::Position>(wParam), 0, + static_cast<Sci::Position>(lParam)); break; case SCI_INDICATORALLONFOR: - return pdoc->decorations->AllOnFor(static_cast<int>(wParam)); + return pdoc->decorations->AllOnFor(static_cast<Sci::Position>(wParam)); case SCI_INDICATORVALUEAT: - return pdoc->decorations->ValueAt(static_cast<int>(wParam), static_cast<int>(lParam)); + return pdoc->decorations->ValueAt(static_cast<int>(wParam), static_cast<Sci::Position>(lParam)); case SCI_INDICATORSTART: - return pdoc->decorations->Start(static_cast<int>(wParam), static_cast<int>(lParam)); + return pdoc->decorations->Start(static_cast<int>(wParam), static_cast<Sci::Position>(lParam)); case SCI_INDICATOREND: - return pdoc->decorations->End(static_cast<int>(wParam), static_cast<int>(lParam)); + return pdoc->decorations->End(static_cast<int>(wParam), static_cast<Sci::Position>(lParam)); case SCI_LINEDOWN: case SCI_LINEDOWNEXTEND: @@ -7508,7 +7501,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { return KeyCommand(iMessage); case SCI_BRACEHIGHLIGHT: - SetBraceHighlight(static_cast<int>(wParam), static_cast<int>(lParam), STYLE_BRACELIGHT); + SetBraceHighlight(static_cast<Sci::Position>(wParam), static_cast<Sci::Position>(lParam), STYLE_BRACELIGHT); break; case SCI_BRACEHIGHLIGHTINDICATOR: @@ -7519,7 +7512,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { break; case SCI_BRACEBADLIGHT: - SetBraceHighlight(static_cast<int>(wParam), -1, STYLE_BRACEBAD); + SetBraceHighlight(static_cast<Sci::Position>(wParam), -1, STYLE_BRACEBAD); break; case SCI_BRACEBADLIGHTINDICATOR: @@ -7532,7 +7525,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { case SCI_BRACEMATCH: // wParam is position of char to find brace for, // lParam is maximum amount of text to restyle to find it - return pdoc->BraceMatch(static_cast<int>(wParam), static_cast<int>(lParam)); + return pdoc->BraceMatch(static_cast<Sci::Position>(wParam), static_cast<Sci::Position>(lParam)); case SCI_GETVIEWEOL: return vs.viewEOL; @@ -7603,7 +7596,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { case SCI_CREATEDOCUMENT: { Document *doc = new Document(static_cast<int>(lParam)); doc->AddRef(); - doc->Allocate(static_cast<int>(wParam)); + doc->Allocate(static_cast<Sci::Position>(wParam)); pcs = ContractionStateCreate(pdoc->IsLarge()); return reinterpret_cast<sptr_t>(doc); } @@ -7622,7 +7615,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { case SCI_CREATELOADER: { Document *doc = new Document(static_cast<int>(lParam)); doc->AddRef(); - doc->Allocate(static_cast<int>(wParam)); + doc->Allocate(static_cast<Sci::Position>(wParam)); doc->SetUndoCollection(false); pcs = ContractionStateCreate(pdoc->IsLarge()); return reinterpret_cast<sptr_t>(static_cast<ILoader *>(doc)); @@ -7641,7 +7634,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { return 0; case SCI_SETLENGTHFORENCODE: - lengthForEncode = static_cast<int>(wParam); + lengthForEncode = static_cast<Sci::Position>(wParam); return 0; case SCI_SELECTIONISRECTANGLE: @@ -7692,8 +7685,8 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { case SCI_GETLINESELSTARTPOSITION: case SCI_GETLINESELENDPOSITION: { const SelectionSegment segmentLine( - SelectionPosition(static_cast<Sci::Position>(pdoc->LineStart(static_cast<int>(wParam)))), - SelectionPosition(static_cast<Sci::Position>(pdoc->LineEnd(static_cast<int>(wParam))))); + SelectionPosition(pdoc->LineStart(static_cast<Sci::Position>(wParam))), + SelectionPosition(pdoc->LineEnd(static_cast<Sci::Position>(wParam)))); for (size_t r=0; r<sel.Count(); r++) { const SelectionSegment portion = sel.Range(r).Intersect(segmentLine); if (portion.start.IsValid()) { @@ -7840,7 +7833,8 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { return reinterpret_cast<sptr_t>(pdoc->BufferPointer()); case SCI_GETRANGEPOINTER: - return reinterpret_cast<sptr_t>(pdoc->RangePointer(static_cast<int>(wParam), static_cast<int>(lParam))); + return reinterpret_cast<sptr_t>(pdoc->RangePointer( + static_cast<Sci::Position>(wParam), static_cast<Sci::Position>(lParam))); case SCI_GETGAPPOSITION: return pdoc->GapPosition(); @@ -7877,29 +7871,29 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { return marginOptions; case SCI_MARGINSETTEXT: - pdoc->MarginSetText(static_cast<int>(wParam), CharPtrFromSPtr(lParam)); + pdoc->MarginSetText(static_cast<Sci::Line>(wParam), CharPtrFromSPtr(lParam)); break; case SCI_MARGINGETTEXT: { - const StyledText st = pdoc->MarginStyledText(static_cast<int>(wParam)); + const StyledText st = pdoc->MarginStyledText(static_cast<Sci::Line>(wParam)); return BytesResult(lParam, reinterpret_cast<const unsigned char *>(st.text), st.length); } case SCI_MARGINSETSTYLE: - pdoc->MarginSetStyle(static_cast<int>(wParam), static_cast<int>(lParam)); + pdoc->MarginSetStyle(static_cast<Sci::Line>(wParam), static_cast<int>(lParam)); break; case SCI_MARGINGETSTYLE: { - const StyledText st = pdoc->MarginStyledText(static_cast<int>(wParam)); + const StyledText st = pdoc->MarginStyledText(static_cast<Sci::Line>(wParam)); return st.style; } case SCI_MARGINSETSTYLES: - pdoc->MarginSetStyles(static_cast<int>(wParam), reinterpret_cast<const unsigned char *>(lParam)); + pdoc->MarginSetStyles(static_cast<Sci::Line>(wParam), reinterpret_cast<const unsigned char *>(lParam)); break; case SCI_MARGINGETSTYLES: { - const StyledText st = pdoc->MarginStyledText(static_cast<int>(wParam)); + const StyledText st = pdoc->MarginStyledText(static_cast<Sci::Line>(wParam)); return BytesResult(lParam, st.styles, st.length); } @@ -7908,34 +7902,34 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { break; case SCI_ANNOTATIONSETTEXT: - pdoc->AnnotationSetText(static_cast<int>(wParam), CharPtrFromSPtr(lParam)); + pdoc->AnnotationSetText(static_cast<Sci::Line>(wParam), CharPtrFromSPtr(lParam)); break; case SCI_ANNOTATIONGETTEXT: { - const StyledText st = pdoc->AnnotationStyledText(static_cast<int>(wParam)); + const StyledText st = pdoc->AnnotationStyledText(static_cast<Sci::Line>(wParam)); return BytesResult(lParam, reinterpret_cast<const unsigned char *>(st.text), st.length); } case SCI_ANNOTATIONGETSTYLE: { - const StyledText st = pdoc->AnnotationStyledText(static_cast<int>(wParam)); + const StyledText st = pdoc->AnnotationStyledText(static_cast<Sci::Line>(wParam)); return st.style; } case SCI_ANNOTATIONSETSTYLE: - pdoc->AnnotationSetStyle(static_cast<int>(wParam), static_cast<int>(lParam)); + pdoc->AnnotationSetStyle(static_cast<Sci::Line>(wParam), static_cast<int>(lParam)); break; case SCI_ANNOTATIONSETSTYLES: - pdoc->AnnotationSetStyles(static_cast<int>(wParam), reinterpret_cast<const unsigned char *>(lParam)); + pdoc->AnnotationSetStyles(static_cast<Sci::Line>(wParam), reinterpret_cast<const unsigned char *>(lParam)); break; case SCI_ANNOTATIONGETSTYLES: { - const StyledText st = pdoc->AnnotationStyledText(static_cast<int>(wParam)); + const StyledText st = pdoc->AnnotationStyledText(static_cast<Sci::Line>(wParam)); return BytesResult(lParam, st.styles, st.length); } case SCI_ANNOTATIONGETLINES: - return pdoc->AnnotationLines(static_cast<int>(wParam)); + return pdoc->AnnotationLines(static_cast<Sci::Line>(wParam)); case SCI_ANNOTATIONCLEARALL: pdoc->AnnotationClearAll(); @@ -7964,7 +7958,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { return vs.AllocateExtendedStyles(static_cast<int>(wParam)); case SCI_ADDUNDOACTION: - pdoc->AddUndoAction(static_cast<int>(wParam), lParam & UNDO_MAY_COALESCE); + pdoc->AddUndoAction(static_cast<Sci::Position>(wParam), lParam & UNDO_MAY_COALESCE); break; case SCI_SETMOUSESELECTIONRECTANGULARSWITCH: @@ -8026,24 +8020,24 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { break; case SCI_SETSELECTION: - sel.SetSelection(SelectionRange(static_cast<int>(wParam), static_cast<int>(lParam))); + sel.SetSelection(SelectionRange(static_cast<Sci::Position>(wParam), static_cast<Sci::Position>(lParam))); Redraw(); break; case SCI_ADDSELECTION: - sel.AddSelection(SelectionRange(static_cast<int>(wParam), static_cast<int>(lParam))); + sel.AddSelection(SelectionRange(static_cast<Sci::Position>(wParam), static_cast<Sci::Position>(lParam))); ContainerNeedsUpdate(SC_UPDATE_SELECTION); Redraw(); break; case SCI_DROPSELECTIONN: - sel.DropSelection(static_cast<int>(wParam)); + sel.DropSelection(static_cast<size_t>(wParam)); ContainerNeedsUpdate(SC_UPDATE_SELECTION); Redraw(); break; case SCI_SETMAINSELECTION: - sel.SetMain(static_cast<int>(wParam)); + sel.SetMain(static_cast<size_t>(wParam)); ContainerNeedsUpdate(SC_UPDATE_SELECTION); Redraw(); break; @@ -8082,7 +8076,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { if (!sel.IsRectangular()) sel.Clear(); sel.selType = Selection::selRectangle; - sel.Rectangular().caret.SetPosition(static_cast<int>(wParam)); + sel.Rectangular().caret.SetPosition(static_cast<Sci::Position>(wParam)); SetRectangularRange(); Redraw(); break; @@ -8094,7 +8088,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { if (!sel.IsRectangular()) sel.Clear(); sel.selType = Selection::selRectangle; - sel.Rectangular().anchor.SetPosition(static_cast<int>(wParam)); + sel.Rectangular().anchor.SetPosition(static_cast<Sci::Position>(wParam)); SetRectangularRange(); Redraw(); break; @@ -8106,7 +8100,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { if (!sel.IsRectangular()) sel.Clear(); sel.selType = Selection::selRectangle; - sel.Rectangular().caret.SetVirtualSpace(static_cast<int>(wParam)); + sel.Rectangular().caret.SetVirtualSpace(static_cast<Sci::Position>(wParam)); SetRectangularRange(); Redraw(); break; @@ -8118,7 +8112,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { if (!sel.IsRectangular()) sel.Clear(); sel.selType = Selection::selRectangle; - sel.Rectangular().anchor.SetVirtualSpace(static_cast<int>(wParam)); + sel.Rectangular().anchor.SetVirtualSpace(static_cast<Sci::Position>(wParam)); SetRectangularRange(); Redraw(); break; @@ -8178,7 +8172,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { break; case SCI_CHANGELEXERSTATE: - pdoc->ChangeLexerState(static_cast<int>(wParam), static_cast<int>(lParam)); + pdoc->ChangeLexerState(static_cast<Sci::Position>(wParam), static_cast<Sci::Position>(lParam)); break; case SCI_SETIDENTIFIER: @@ -8196,7 +8190,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { return technology; case SCI_COUNTCHARACTERS: - return pdoc->CountCharacters(static_cast<int>(wParam), static_cast<int>(lParam)); + return pdoc->CountCharacters(static_cast<Sci::Position>(wParam), static_cast<Sci::Position>(lParam)); default: return DefWndProc(iMessage, wParam, lParam); |