diff options
-rw-r--r-- | include/ILexer.h | 8 | ||||
-rw-r--r-- | lexers/LexEDIFACT.cxx | 4 | ||||
-rw-r--r-- | lexlib/LexAccessor.h | 21 | ||||
-rw-r--r-- | lexlib/StyleContext.h | 2 | ||||
-rw-r--r-- | qt/ScintillaEdit/ScintillaDocument.cpp | 4 | ||||
-rw-r--r-- | qt/ScintillaEdit/ScintillaDocument.h | 2 | ||||
-rw-r--r-- | src/Document.cxx | 4 | ||||
-rw-r--r-- | src/Document.h | 6 | ||||
-rw-r--r-- | src/Editor.cxx | 6 |
9 files changed, 20 insertions, 37 deletions
diff --git a/include/ILexer.h b/include/ILexer.h index f01029178..5680acb4e 100644 --- a/include/ILexer.h +++ b/include/ILexer.h @@ -20,7 +20,7 @@ namespace Scintilla { #define SCI_METHOD #endif -enum { dvOriginal=0, dvLineEnd=1 }; +enum { dvRelease4=2 }; class IDocument { public: @@ -35,7 +35,7 @@ public: virtual int SCI_METHOD SetLevel(Sci_Position line, int level) = 0; virtual int SCI_METHOD GetLineState(Sci_Position line) const = 0; virtual int SCI_METHOD SetLineState(Sci_Position line, int state) = 0; - virtual void SCI_METHOD StartStyling(Sci_Position position, char mask) = 0; + virtual void SCI_METHOD StartStyling(Sci_Position position) = 0; virtual bool SCI_METHOD SetStyleFor(Sci_Position length, char style) = 0; virtual bool SCI_METHOD SetStyles(Sci_Position length, const char *styles) = 0; virtual void SCI_METHOD DecorationSetCurrentIndicator(int indicator) = 0; @@ -45,10 +45,6 @@ public: virtual bool SCI_METHOD IsDBCSLeadByte(char ch) const = 0; virtual const char * SCI_METHOD BufferPointer() = 0; virtual int SCI_METHOD GetLineIndentation(Sci_Position line) = 0; -}; - -class IDocumentWithLineEnd : public IDocument { -public: virtual Sci_Position SCI_METHOD LineEnd(Sci_Position line) const = 0; virtual Sci_Position SCI_METHOD GetRelativePosition(Sci_Position positionStart, Sci_Position characterOffset) const = 0; virtual int SCI_METHOD GetCharacterAndWidth(Sci_Position position, Sci_Position *pWidth) const = 0; diff --git a/lexers/LexEDIFACT.cxx b/lexers/LexEDIFACT.cxx index 63805b04e..c21351bf5 100644 --- a/lexers/LexEDIFACT.cxx +++ b/lexers/LexEDIFACT.cxx @@ -125,7 +125,7 @@ void LexerEDIFACT::Lex(Sci_PositionU startPos, Sci_Position lengthDoc, int, IDoc // Style buffer, so we're not issuing loads of notifications LexAccessor styler (pAccess); - pAccess->StartStyling(posCurrent, '\377'); + pAccess->StartStyling(posCurrent); styler.StartSegment(posCurrent); Sci_Position posSegmentStart = -1; @@ -188,7 +188,7 @@ void LexerEDIFACT::Lex(Sci_PositionU startPos, Sci_Position lengthDoc, int, IDoc if (posSegmentStart == -1) return; - pAccess->StartStyling(posSegmentStart, -1); + pAccess->StartStyling(posSegmentStart); pAccess->SetStyleFor(posFinish - posSegmentStart, SCE_EDI_BADSEGMENT); } diff --git a/lexlib/LexAccessor.h b/lexlib/LexAccessor.h index 064a17581..0cf6e8ce0 100644 --- a/lexlib/LexAccessor.h +++ b/lexlib/LexAccessor.h @@ -79,11 +79,8 @@ public: } return buf[position - startPos]; } - IDocumentWithLineEnd *MultiByteAccess() const { - if (documentVersion >= dvLineEnd) { - return static_cast<IDocumentWithLineEnd *>(pAccess); - } - return 0; + IDocument *MultiByteAccess() const { + return pAccess; } /** Safe version of operator[], returning a defined value for invalid position. */ char SafeGetCharAt(Sci_Position position, char chDefault=' ') { @@ -120,17 +117,7 @@ public: return pAccess->LineStart(line); } Sci_Position LineEnd(Sci_Position line) { - if (documentVersion >= dvLineEnd) { - return (static_cast<IDocumentWithLineEnd *>(pAccess))->LineEnd(line); - } else { - // Old interface means only '\r', '\n' and '\r\n' line ends. - Sci_Position startNext = pAccess->LineStart(line+1); - const char chLineEnd = SafeGetCharAt(startNext-1); - if (chLineEnd == '\n' && (SafeGetCharAt(startNext-2) == '\r')) - return startNext - 2; - else - return startNext - 1; - } + return pAccess->LineEnd(line); } int LevelAt(Sci_Position line) const { return pAccess->GetLevel(line); @@ -153,7 +140,7 @@ public: } // Style setting void StartAt(Sci_PositionU start) { - pAccess->StartStyling(start, '\377'); + pAccess->StartStyling(start); startPosStyling = start; } Sci_PositionU GetStartSegment() const { diff --git a/lexlib/StyleContext.h b/lexlib/StyleContext.h index a536822e2..abfc07318 100644 --- a/lexlib/StyleContext.h +++ b/lexlib/StyleContext.h @@ -18,7 +18,7 @@ namespace Scintilla { // syntactically significant. UTF-8 avoids this as all trail bytes are >= 0x80 class StyleContext { LexAccessor &styler; - IDocumentWithLineEnd *multiByteAccess; + IDocument *multiByteAccess; Sci_PositionU endPos; Sci_PositionU lengthDocument; diff --git a/qt/ScintillaEdit/ScintillaDocument.cpp b/qt/ScintillaEdit/ScintillaDocument.cpp index 076292c95..b7b6d8239 100644 --- a/qt/ScintillaEdit/ScintillaDocument.cpp +++ b/qt/ScintillaEdit/ScintillaDocument.cpp @@ -217,8 +217,8 @@ int ScintillaDocument::lines_total() { return (static_cast<Document *>(pdoc))->LinesTotal(); } -void ScintillaDocument::start_styling(int position, char flags) { - (static_cast<Document *>(pdoc))->StartStyling(position, flags); +void ScintillaDocument::start_styling(int position) { + (static_cast<Document *>(pdoc))->StartStyling(position); } bool ScintillaDocument::set_style_for(int length, char style) { diff --git a/qt/ScintillaEdit/ScintillaDocument.h b/qt/ScintillaEdit/ScintillaDocument.h index 510127f94..ddb246d6c 100644 --- a/qt/ScintillaEdit/ScintillaDocument.h +++ b/qt/ScintillaEdit/ScintillaDocument.h @@ -63,7 +63,7 @@ public: int line_end_position(int pos); int length(); int lines_total(); - void start_styling(int position, char flags); + void start_styling(int position); bool set_style_for(int length, char style); int get_end_styled(); void ensure_styled_to(int position); diff --git a/src/Document.cxx b/src/Document.cxx index ac4322e1b..209060e5e 100644 --- a/src/Document.cxx +++ b/src/Document.cxx @@ -2033,8 +2033,8 @@ int Document::GetCharsOfClass(CharClassify::cc characterClass, unsigned char *bu return charClass.GetCharsOfClass(characterClass, buffer); } -void SCI_METHOD Document::StartStyling(Sci_Position position, char) { - endStyled = position; +void SCI_METHOD Document::StartStyling(Sci_Position position) { + endStyled = static_cast<Sci::Position>(position); } bool SCI_METHOD Document::SetStyleFor(Sci_Position length, char style) { diff --git a/src/Document.h b/src/Document.h index fd72c56c6..520755ae3 100644 --- a/src/Document.h +++ b/src/Document.h @@ -195,7 +195,7 @@ struct RegexError : public std::runtime_error { /** */ -class Document : PerLine, public IDocumentWithLineEnd, public ILoader { +class Document : PerLine, public IDocument, public ILoader { public: /** Used to pair watcher pointer with user data. */ @@ -286,7 +286,7 @@ public: virtual void RemoveLine(Sci::Line line); int SCI_METHOD Version() const { - return dvLineEnd; + return dvRelease4; } void SCI_METHOD SetErrorStatus(int status); @@ -412,7 +412,7 @@ public: void SetDefaultCharClasses(bool includeWordClass); void SetCharClasses(const unsigned char *chars, CharClassify::cc newCharClass); int GetCharsOfClass(CharClassify::cc characterClass, unsigned char *buffer) const; - void SCI_METHOD StartStyling(Sci_Position position, char mask); + void SCI_METHOD StartStyling(Sci_Position position); bool SCI_METHOD SetStyleFor(Sci_Position length, char style); bool SCI_METHOD SetStyles(Sci_Position length, const char *styles); Sci::Position GetEndStyled() const { return endStyled; } diff --git a/src/Editor.cxx b/src/Editor.cxx index 5a200e952..bf81bb8ea 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -2105,7 +2105,7 @@ void Editor::ClearAll() { void Editor::ClearDocumentStyle() { pdoc->decorations.DeleteLexerDecorations(); - pdoc->StartStyling(0, '\377'); + pdoc->StartStyling(0); pdoc->SetStyleFor(pdoc->Length(), 0); cs.ShowAll(); SetAnnotationHeights(0, pdoc->LinesTotal()); @@ -5549,7 +5549,7 @@ void Editor::AddStyledText(char *buffer, Sci::Position appendLength) { for (i = 0; i < textLength; i++) { text[i] = buffer[i*2+1]; } - pdoc->StartStyling(CurrentPosition(), static_cast<unsigned char>(0xff)); + pdoc->StartStyling(CurrentPosition()); pdoc->SetStyles(textLength, text.c_str()); SetEmptySelection(sel.MainCaret() + lengthInserted); } @@ -6390,7 +6390,7 @@ 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), static_cast<char>(lParam)); + pdoc->StartStyling(static_cast<int>(wParam)); break; case SCI_SETSTYLING: |