diff options
Diffstat (limited to 'src/Editor.cxx')
-rw-r--r-- | src/Editor.cxx | 48 |
1 files changed, 29 insertions, 19 deletions
diff --git a/src/Editor.cxx b/src/Editor.cxx index ff9872e58..4cc32eb44 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -1612,8 +1612,10 @@ void Editor::LinesSplit(int pixelWidth) { unsigned int posLineStart = pdoc->LineStart(line); LayoutLine(line, surface, vs, ll, pixelWidth); for (int subLine = 1; subLine < ll->lines; subLine++) { - pdoc->InsertCString(posLineStart + (subLine - 1) * strlen(eol) + - ll->LineStart(subLine), eol); + pdoc->InsertCString( + static_cast<int>(posLineStart + (subLine - 1) * strlen(eol) + + ll->LineStart(subLine)), + eol); targetEnd += static_cast<int>(strlen(eol)); } } @@ -1656,7 +1658,8 @@ static int WidthStyledText(Surface *surface, ViewStyle &vs, int styleOffset, size_t endSegment = start; while ((endSegment+1 < len) && (static_cast<size_t>(styles[endSegment+1]) == style)) endSegment++; - width += surface->WidthText(vs.styles[style+styleOffset].font, text + start, endSegment - start + 1); + width += surface->WidthText(vs.styles[style+styleOffset].font, text + start, + static_cast<int>(endSegment - start + 1)); start = endSegment + 1; } return width; @@ -1671,7 +1674,8 @@ static int WidestLineWidth(Surface *surface, ViewStyle &vs, int styleOffset, con if (st.multipleStyles) { widthSubLine = WidthStyledText(surface, vs, styleOffset, st.text + start, st.styles + start, lenLine); } else { - widthSubLine = surface->WidthText(vs.styles[styleOffset + st.style].font, st.text + start, lenLine); + widthSubLine = surface->WidthText(vs.styles[styleOffset + st.style].font, + st.text + start, static_cast<int>(lenLine)); } if (widthSubLine > widthMax) widthMax = widthSubLine; @@ -1692,21 +1696,24 @@ void DrawStyledText(Surface *surface, ViewStyle &vs, int styleOffset, PRectangle while (end < length-1 && st.styles[start+end+1] == style) end++; style += styleOffset; - int width = surface->WidthText(vs.styles[style].font, st.text + start + i, end - i + 1); + int width = surface->WidthText(vs.styles[style].font, + st.text + start + i, static_cast<int>(end - i + 1)); PRectangle rcSegment = rcText; rcSegment.left = x; rcSegment.right = x + width + 1; surface->DrawTextNoClip(rcSegment, vs.styles[style].font, - ascent, st.text + start + i, end - i + 1, + ascent, st.text + start + i, + static_cast<int>(end - i + 1), vs.styles[style].fore.allocated, vs.styles[style].back.allocated); x += width; i = end + 1; } } else { - int style = st.style + styleOffset; + size_t style = st.style + styleOffset; surface->DrawTextNoClip(rcText, vs.styles[style].font, - rcText.top + vs.maxAscent, st.text + start, length, + rcText.top + vs.maxAscent, st.text + start, + static_cast<int>(length), vs.styles[style].fore.allocated, vs.styles[style].back.allocated); } @@ -4870,10 +4877,13 @@ void Editor::ChangeCaseOfSelection(int caseMapping) { while (sMapped[lastDifference] == sText[lastDifference]) lastDifference--; size_t endSame = sMapped.size() - 1 - lastDifference; - pdoc->DeleteChars(currentNoVS.Start().Position() + firstDifference, - rangeBytes - firstDifference - endSame); - pdoc->InsertString(currentNoVS.Start().Position() + firstDifference, - sMapped.c_str() + firstDifference, lastDifference - firstDifference + 1); + pdoc->DeleteChars( + static_cast<int>(currentNoVS.Start().Position() + firstDifference), + static_cast<int>(rangeBytes - firstDifference - endSame)); + pdoc->InsertString( + static_cast<int>(currentNoVS.Start().Position() + firstDifference), + sMapped.c_str() + firstDifference, + static_cast<int>(lastDifference - firstDifference + 1)); // Automatic movement changes selection so reset to exactly the same as it was. sel.Range(r) = current; } @@ -5814,7 +5824,7 @@ void Editor::CopySelectionRange(SelectionText *ss, bool allowLineCopy) { int end = pdoc->LineEnd(currentLine); char *text = CopyRange(start, end); - int textLen = text ? strlen(text) : 0; + size_t textLen = text ? strlen(text) : 0; // include room for \r\n\0 textLen += 3; char *textWithEndl = new char[textLen]; @@ -5825,7 +5835,7 @@ void Editor::CopySelectionRange(SelectionText *ss, bool allowLineCopy) { strncat(textWithEndl, "\r", textLen); if (pdoc->eolMode != SC_EOL_CR) strncat(textWithEndl, "\n", textLen); - ss->Set(textWithEndl, strlen(textWithEndl) + 1, + ss->Set(textWithEndl, static_cast<int>(strlen(textWithEndl) + 1), pdoc->dbcsCodePage, vs.styles[STYLE_DEFAULT].characterSet, false, true); delete []text; } @@ -5838,7 +5848,7 @@ void Editor::CopySelectionRange(SelectionText *ss, bool allowLineCopy) { delimiterLength = 1; } } - int size = sel.Length() + delimiterLength * sel.Count(); + size_t size = sel.Length() + delimiterLength * sel.Count(); char *text = new char[size + 1]; int j = 0; std::vector<SelectionRange> rangesInOrder = sel.RangesCopy(); @@ -5861,7 +5871,7 @@ void Editor::CopySelectionRange(SelectionText *ss, bool allowLineCopy) { } } text[size] = '\0'; - ss->Set(text, size + 1, pdoc->dbcsCodePage, + ss->Set(text, static_cast<int>(size + 1), pdoc->dbcsCodePage, vs.styles[STYLE_DEFAULT].characterSet, sel.IsRectangular(), sel.selType == Selection::selLines); } } @@ -6908,9 +6918,9 @@ int Editor::WrapCount(int line) { void Editor::AddStyledText(char *buffer, int appendLength) { // The buffer consists of alternating character bytes and style bytes - size_t textLength = appendLength / 2; + int textLength = appendLength / 2; char *text = new char[textLength]; - size_t i; + int i; for (i = 0; i < textLength; i++) { text[i] = buffer[i*2]; } @@ -7018,7 +7028,7 @@ sptr_t Editor::StyleGetMessage(unsigned int iMessage, uptr_t wParam, sptr_t lPar } sptr_t Editor::StringResult(sptr_t lParam, const char *val) { - const int n = strlen(val); + const size_t n = strlen(val); if (lParam != 0) { char *ptr = reinterpret_cast<char *>(lParam); strcpy(ptr, val); |