diff options
author | Neil <nyamatongwe@gmail.com> | 2018-04-17 08:23:18 +1000 |
---|---|---|
committer | Neil <nyamatongwe@gmail.com> | 2018-04-17 08:23:18 +1000 |
commit | 255d2d33abf4c2c5a918bacde049004e52b7986f (patch) | |
tree | 4a563a7d7a9594be0e67b6be6c2c493d8ffea9ec | |
parent | ec79c307ff36cdcce0e520e67bef69e64a3e19b5 (diff) | |
download | scintilla-mirror-255d2d33abf4c2c5a918bacde049004e52b7986f.tar.gz |
Add SC_DOCUMENTOPTION_TEXT_LARGE option for documents larger than 2 GigaBytes.
This option is provisional and experimental.
-rw-r--r-- | doc/ScintillaDoc.html | 49 | ||||
-rw-r--r-- | doc/ScintillaHistory.html | 4 | ||||
-rw-r--r-- | include/Scintilla.h | 4 | ||||
-rw-r--r-- | include/Scintilla.iface | 10 | ||||
-rw-r--r-- | src/CellBuffer.cxx | 17 | ||||
-rw-r--r-- | src/CellBuffer.h | 5 | ||||
-rw-r--r-- | src/ContractionState.cxx | 7 | ||||
-rw-r--r-- | src/ContractionState.h | 2 | ||||
-rw-r--r-- | src/Document.cxx | 9 | ||||
-rw-r--r-- | src/Document.h | 2 | ||||
-rw-r--r-- | src/EditModel.cxx | 2 | ||||
-rw-r--r-- | src/EditView.cxx | 7 | ||||
-rw-r--r-- | src/Editor.cxx | 9 | ||||
-rw-r--r-- | src/MarginView.cxx | 13 | ||||
-rw-r--r-- | src/Position.h | 4 | ||||
-rw-r--r-- | src/RunStyles.cxx | 2 | ||||
-rw-r--r-- | test/unit/testCellBuffer.cxx | 2 | ||||
-rw-r--r-- | test/unit/testContractionState.cxx | 2 | ||||
-rw-r--r-- | test/unit/testPartitioning.cxx | 2 |
19 files changed, 111 insertions, 41 deletions
diff --git a/doc/ScintillaDoc.html b/doc/ScintillaDoc.html index 25e7ca15b..d9f658814 100644 --- a/doc/ScintillaDoc.html +++ b/doc/ScintillaDoc.html @@ -119,7 +119,7 @@ <h1>Scintilla Documentation</h1> - <p>Last edited 1 February 2018 NH</p> + <p>Last edited 17 April 2018 NH</p> <p>There is <a class="jump" href="Design.html">an overview of the internal design of Scintilla</a>.<br /> @@ -5711,11 +5711,12 @@ sptr_t CallScintilla(unsigned int iMessage, uptr_t wParam, sptr_t lParam){ <code><a class="message" href="#SCI_GETDOCPOINTER">SCI_GETDOCPOINTER → document *</a><br /> <a class="message" href="#SCI_SETDOCPOINTER">SCI_SETDOCPOINTER(<unused>, document *doc)</a><br /> - <a class="message" href="#SCI_CREATEDOCUMENT">SCI_CREATEDOCUMENT(int bytes, int documentOption) → document *</a><br /> + <a class="message" href="#SCI_CREATEDOCUMENT">SCI_CREATEDOCUMENT(int bytes, int documentOptions) → document *</a><br /> <a class="message" href="#SCI_ADDREFDOCUMENT">SCI_ADDREFDOCUMENT(<unused>, document *doc)</a><br /> <a class="message" href="#SCI_RELEASEDOCUMENT">SCI_RELEASEDOCUMENT(<unused>, document *doc)</a><br /> + <a class="message" href="#SCI_GETDOCUMENTOPTIONS">SCI_GETDOCUMENTOPTIONS → int</a><br /> </code> <p><b id="SCI_GETDOCPOINTER">SCI_GETDOCPOINTER → document *</b><br /> @@ -5732,7 +5733,7 @@ sptr_t CallScintilla(unsigned int iMessage, uptr_t wParam, sptr_t lParam){ window.<br /> 6. If <code class="parameter">doc</code> was not 0, its reference count is increased by 1.</p> - <p><b id="SCI_CREATEDOCUMENT">SCI_CREATEDOCUMENT(int bytes, int documentOption) → document *</b><br /> + <p><b id="SCI_CREATEDOCUMENT">SCI_CREATEDOCUMENT(int bytes, int documentOptions) → document *</b><br /> This message creates a new, empty document and returns a pointer to it. This document is not selected into the editor and starts with a reference count of 1. This means that you have ownership of it and must either reduce its reference count by 1 after using @@ -5743,12 +5744,29 @@ sptr_t CallScintilla(unsigned int iMessage, uptr_t wParam, sptr_t lParam){ to allocate once rather than rely on the buffer growing as data is added. If <code>SCI_CREATEDOCUMENT</code> fails then 0 is returned.</p> - <p id="documentOption">The <code class="parameter">documentOption</code> argument + <p id="documentOptions">The <code class="parameter">documentOptions</code> argument chooses between different document capabilities which affect memory allocation and performance with <code>SC_DOCUMENTOPTION_DEFAULT</code> (0) choosing standard options. - <code>SC_DOCUMENTOPTION_STYLES_NONE</code> (1) stops allocation of memory to style characters + <code>SC_DOCUMENTOPTION_STYLES_NONE</code> (0x1) stops allocation of memory to style characters which saves significant memory, often 40% with the whole document treated as being style 0. - Lexers may still produce visual styling by using indicators.</p> + Lexers may still produce visual styling by using indicators. + <span class="provisional"><code>SC_DOCUMENTOPTION_TEXT_LARGE</code> (0x100) accomodates documents larger than 2 GigaBytes + in 64-bit executables.</span> + </p> + + <p>With <code>SC_DOCUMENTOPTION_STYLES_NONE</code>, lexers are still active and may display + indicators. Some may produce folding information althoough most require lexical styles to correctly determine folding. + Its often more efficient to set the null lexer <code>SCLEX_NULL</code> so no lexer is run. + </p> + + <p class="provisional">The <code>SC_DOCUMENTOPTION_TEXT_LARGE</code> option is experimental and has not been + thoroughly tested. Lexers may fail or hang when lexing past 2GB or 4GB. + Applications using this option should be tested to ensure the option works in their circumstances and each lexer + included should also be tested with documents larger than 4GB. + For many applications lexing documents larger than 4GB will be too sluggish so <code>SC_DOCUMENTOPTION_STYLES_NONE</code> + and the null lexer <code>SCLEX_NULL</code> can be used. Another approach is to turn on idle styling with + <a class="seealso" href="#SCI_SETIDLESTYLING"><code>SCI_SETIDLESTYLING</code></a>. + </p> <table class="standard" summary="Document options"> <tbody> @@ -5769,10 +5787,16 @@ sptr_t CallScintilla(unsigned int iMessage, uptr_t wParam, sptr_t lParam){ <tr> <td align="left">SC_DOCUMENTOPTION_STYLES_NONE</td> - <td align="left">1</td> + <td align="left">0x1</td> <td align="left">Stop allocation of memory for styles and treat all text as style 0.</td> </tr> + <tr> + <td align="left" class="provisional">SC_DOCUMENTOPTION_TEXT_LARGE</td> + <td align="left">0x100</td> + <td align="left">Allow document to be larger than 2 GB.</td> + </tr> + </tbody> </table> @@ -5794,6 +5818,9 @@ sptr_t CallScintilla(unsigned int iMessage, uptr_t wParam, sptr_t lParam){ world spinning in its orbit you must balance each call to <code>SCI_CREATEDOCUMENT</code> or <code>SCI_ADDREFDOCUMENT</code> with a call to <code>SCI_RELEASEDOCUMENT</code>.</p> + <p><b id="SCI_GETDOCUMENTOPTIONS">SCI_GETDOCUMENTOPTIONS → int</b><br /> + Returns the options that were used to create the document.</p> + <h2 id="BackgroundLoadSave">Background loading and saving</h2> <p>To ensure a responsive user interface, applications may decide to load and save documents using a separate thread @@ -5801,7 +5828,7 @@ sptr_t CallScintilla(unsigned int iMessage, uptr_t wParam, sptr_t lParam){ <h3 id="BackgroundLoad">Loading in the background</h3> - <code><a class="message" href="#SCI_CREATELOADER">SCI_CREATELOADER(int bytes, int documentOption) → int</a><br /> + <code><a class="message" href="#SCI_CREATELOADER">SCI_CREATELOADER(int bytes, int documentOptions) → int</a><br /> </code> <p>An application can load all of a file into a buffer it allocates on a background thread and then add the data in that buffer @@ -5810,15 +5837,15 @@ sptr_t CallScintilla(unsigned int iMessage, uptr_t wParam, sptr_t lParam){ <p>To avoid these issues, a loader object may be created and used to load the file. The loader object supports the ILoader interface.</p> - <p><b id="SCI_CREATELOADER">SCI_CREATELOADER(int bytes, int documentOption) → int</b><br /> + <p><b id="SCI_CREATELOADER">SCI_CREATELOADER(int bytes, int documentOptions) → int</b><br /> Create an object that supports the <code>ILoader</code> interface which can be used to load data and then be turned into a Scintilla document object for attachment to a view object. The <code class="parameter">bytes</code> argument determines the initial memory allocation for the document as it is more efficient to allocate once rather than rely on the buffer growing as data is added. If <code>SCI_CREATELOADER</code> fails then 0 is returned.</p> - <p>The <code class="parameter">documentOption</code> argument - is described in the <a class="seealso" href="#documentOption"><code>SCI_CREATEDOCUMENT</code></a> section.</p> + <p>The <code class="parameter">documentOptions</code> argument + is described in the <a class="seealso" href="#documentOptions"><code>SCI_CREATEDOCUMENT</code></a> section.</p> <h4>ILoader</h4> diff --git a/doc/ScintillaHistory.html b/doc/ScintillaHistory.html index 87bfa49ab..00fe782fe 100644 --- a/doc/ScintillaHistory.html +++ b/doc/ScintillaHistory.html @@ -542,6 +542,10 @@ Released 10 April 2018. </li> <li> + Add experimental SC_DOCUMENTOPTION_TEXT_LARGE option to accomodate documents larger than + 2 GigaBytes. + </li> + <li> Set the last X chosen when SCI_REPLACESEL called to ensure macros work when text insertion followed by caret up or down. </li> diff --git a/include/Scintilla.h b/include/Scintilla.h index 29a723e26..3ec70a380 100644 --- a/include/Scintilla.h +++ b/include/Scintilla.h @@ -685,10 +685,12 @@ typedef sptr_t (*SciFnDirect)(sptr_t ptr, unsigned int iMessage, uptr_t wParam, #define SCI_SETZOOM 2373 #define SCI_GETZOOM 2374 #define SC_DOCUMENTOPTION_DEFAULT 0 -#define SC_DOCUMENTOPTION_STYLES_NONE 1 +#define SC_DOCUMENTOPTION_STYLES_NONE 0x1 +#define SC_DOCUMENTOPTION_TEXT_LARGE 0x100 #define SCI_CREATEDOCUMENT 2375 #define SCI_ADDREFDOCUMENT 2376 #define SCI_RELEASEDOCUMENT 2377 +#define SCI_GETDOCUMENTOPTIONS 2379 #define SCI_GETMODEVENTMASK 2378 #define SCI_SETFOCUS 2380 #define SCI_GETFOCUS 2381 diff --git a/include/Scintilla.iface b/include/Scintilla.iface index 51c3f2e81..2c361b5f0 100644 --- a/include/Scintilla.iface +++ b/include/Scintilla.iface @@ -1773,16 +1773,20 @@ get int GetZoom=2374(,) enu DocumentOption=SC_DOCUMENTOPTION_ val SC_DOCUMENTOPTION_DEFAULT=0 -val SC_DOCUMENTOPTION_STYLES_NONE=1 +val SC_DOCUMENTOPTION_STYLES_NONE=0x1 +val SC_DOCUMENTOPTION_TEXT_LARGE=0x100 # Create a new document object. # Starts with reference count of 1 and not selected into editor. -fun int CreateDocument=2375(int bytes, int documentOption) +fun int CreateDocument=2375(int bytes, int documentOptions) # Extend life of document. fun void AddRefDocument=2376(, int doc) # Release a reference to the document, deleting document if it fades to black. fun void ReleaseDocument=2377(, int doc) +# Get which document options are set. +get int GetDocumentOptions=2379(,) + # Get which document modification events are sent to the container. get int GetModEventMask=2378(,) @@ -2544,7 +2548,7 @@ set void SetTechnology=2630(int technology,) get int GetTechnology=2631(,) # Create an ILoader*. -fun int CreateLoader=2632(int bytes, int documentOption) +fun int CreateLoader=2632(int bytes, int documentOptions) # On OS X, show a find indicator. fun void FindIndicatorShow=2640(position start, position end) diff --git a/src/CellBuffer.cxx b/src/CellBuffer.cxx index d6d83c20b..fcc75a741 100644 --- a/src/CellBuffer.cxx +++ b/src/CellBuffer.cxx @@ -364,12 +364,17 @@ void UndoHistory::CompletedRedoStep() { currentAction++; } -CellBuffer::CellBuffer(bool hasStyles_) : - hasStyles(hasStyles_) { +CellBuffer::CellBuffer(bool hasStyles_, bool largeDocument_) : + hasStyles(hasStyles_), largeDocument(largeDocument_) { readOnly = false; utf8LineEnds = 0; collectingUndo = true; plv = std::make_unique<LineVector<Sci::Position>>(); + if (largeDocument) + plv = std::make_unique<LineVector<Sci::Position>>(); + else + plv = std::make_unique<LineVector<int>>(); + } CellBuffer::~CellBuffer() { @@ -556,6 +561,14 @@ void CellBuffer::SetReadOnly(bool set) { readOnly = set; } +bool CellBuffer::IsLarge() const { + return largeDocument; +} + +bool CellBuffer::HasStyles() const { + return hasStyles; +} + void CellBuffer::SetSavePoint() { uh.SetSavePoint(); } diff --git a/src/CellBuffer.h b/src/CellBuffer.h index 544a26711..935ea6e69 100644 --- a/src/CellBuffer.h +++ b/src/CellBuffer.h @@ -108,6 +108,7 @@ public: class CellBuffer { private: bool hasStyles; + bool largeDocument; SplitVector<char> substance; SplitVector<char> style; bool readOnly; @@ -126,7 +127,7 @@ private: public: - CellBuffer(bool hasStyles_); + CellBuffer(bool hasStyles_, bool largeDocument_); // Deleted so CellBuffer objects can not be copied. CellBuffer(const CellBuffer &) = delete; void operator=(const CellBuffer &) = delete; @@ -163,6 +164,8 @@ public: bool IsReadOnly() const; void SetReadOnly(bool set); + bool IsLarge() const; + bool HasStyles() const; /// The save point is a marker in the undo stack where the container has stated that /// the buffer was saved. Undo and redo can move over the save point. diff --git a/src/ContractionState.cxx b/src/ContractionState.cxx index 2950587cb..b513c20a6 100644 --- a/src/ContractionState.cxx +++ b/src/ContractionState.cxx @@ -407,8 +407,11 @@ void ContractionState<LINE>::Check() const { namespace Scintilla { -std::unique_ptr<IContractionState> ContractionStateCreate() { - return std::make_unique<ContractionState<Sci::Line>>(); +std::unique_ptr<IContractionState> ContractionStateCreate(bool largeDocument) { + if (largeDocument) + return std::make_unique<ContractionState<Sci::Line>>(); + else + return std::make_unique<ContractionState<int>>(); } } diff --git a/src/ContractionState.h b/src/ContractionState.h index a951e0a0c..90f5c0784 100644 --- a/src/ContractionState.h +++ b/src/ContractionState.h @@ -45,7 +45,7 @@ public: virtual void ShowAll()=0; }; -std::unique_ptr<IContractionState> ContractionStateCreate(); +std::unique_ptr<IContractionState> ContractionStateCreate(bool largeDocument); } diff --git a/src/Document.cxx b/src/Document.cxx index 09a91d469..4765248d1 100644 --- a/src/Document.cxx +++ b/src/Document.cxx @@ -82,7 +82,7 @@ int LexInterface::LineEndTypesSupported() { } Document::Document(int options) : - cb((options & SC_DOCUMENTOPTION_STYLES_NONE) == 0) { + cb((options & SC_DOCUMENTOPTION_STYLES_NONE) == 0, (options & SC_DOCUMENTOPTION_TEXT_LARGE) != 0) { refCount = 0; #ifdef _WIN32 eolMode = SC_EOL_CRLF; @@ -113,7 +113,7 @@ Document::Document(int options) : perLineData[ldMargin] = std::make_unique<LineAnnotation>(); perLineData[ldAnnotation] = std::make_unique<LineAnnotation>(); - decorations = DecorationListCreate(false); + decorations = DecorationListCreate(IsLarge()); cb.SetPerLine(this); } @@ -1520,6 +1520,11 @@ void Document::ConvertLineEnds(int eolModeSet) { } +int Document::Options() const { + return (IsLarge() ? SC_DOCUMENTOPTION_TEXT_LARGE : 0) | + (cb.HasStyles() ? 0 : SC_DOCUMENTOPTION_STYLES_NONE); +} + bool Document::IsWhiteLine(Sci::Line line) const { Sci::Position currentChar = static_cast<Sci::Position>(LineStart(line)); const Sci::Position endLine = static_cast<Sci::Position>(LineEnd(line)); diff --git a/src/Document.h b/src/Document.h index 7614373e2..d5d0a4d2e 100644 --- a/src/Document.h +++ b/src/Document.h @@ -352,6 +352,8 @@ public: void ConvertLineEnds(int eolModeSet); void SetReadOnly(bool set) { cb.SetReadOnly(set); } bool IsReadOnly() const { return cb.IsReadOnly(); } + bool IsLarge() const { return cb.IsLarge(); } + int Options() const; void DelChar(Sci::Position pos); void DelCharBack(Sci::Position pos); diff --git a/src/EditModel.cxx b/src/EditModel.cxx index 7782f583e..e7400ca37 100644 --- a/src/EditModel.cxx +++ b/src/EditModel.cxx @@ -70,7 +70,7 @@ EditModel::EditModel() { wrapWidth = LineLayout::wrapWidthInfinite; pdoc = new Document(SC_DOCUMENTOPTION_DEFAULT); pdoc->AddRef(); - pcs = ContractionStateCreate(); + pcs = ContractionStateCreate(pdoc->IsLarge()); } EditModel::~EditModel() { diff --git a/src/EditView.cxx b/src/EditView.cxx index 37a6a9f9e..3f490af5e 100644 --- a/src/EditView.cxx +++ b/src/EditView.cxx @@ -2330,16 +2330,15 @@ Sci::Position EditView::FormatRange(bool draw, Sci_RangeToFormat *pfr, Surface * if (draw && lineNumberWidth && (ypos + vsPrint.lineHeight <= pfr->rc.bottom) && (visibleLine >= 0)) { - char number[100]; - sprintf(number, "%d" lineNumberPrintSpace, lineDoc + 1); + const std::string number = std::to_string(lineDoc + 1) + lineNumberPrintSpace; PRectangle rcNumber = rcLine; rcNumber.right = rcNumber.left + lineNumberWidth; // Right justify rcNumber.left = rcNumber.right - surfaceMeasure->WidthText( - vsPrint.styles[STYLE_LINENUMBER].font, number, static_cast<int>(strlen(number))); + vsPrint.styles[STYLE_LINENUMBER].font, number.c_str(), static_cast<int>(number.length())); surface->FlushCachedState(); surface->DrawTextNoClip(rcNumber, vsPrint.styles[STYLE_LINENUMBER].font, - static_cast<XYPOSITION>(ypos + vsPrint.maxAscent), number, static_cast<int>(strlen(number)), + static_cast<XYPOSITION>(ypos + vsPrint.maxAscent), number.c_str(), static_cast<int>(number.length()), vsPrint.styles[STYLE_LINENUMBER].fore, vsPrint.styles[STYLE_LINENUMBER].back); } diff --git a/src/Editor.cxx b/src/Editor.cxx index 0a2cf9c7c..ca23b0030 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -5212,7 +5212,7 @@ void Editor::SetDocPointer(Document *document) { pdoc = document; } pdoc->AddRef(); - pcs = ContractionStateCreate(); + pcs = ContractionStateCreate(pdoc->IsLarge()); // Ensure all positions within document sel.Clear(); @@ -7604,7 +7604,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { Document *doc = new Document(static_cast<int>(lParam)); doc->AddRef(); doc->Allocate(static_cast<int>(wParam)); - pcs = ContractionStateCreate(); + pcs = ContractionStateCreate(pdoc->IsLarge()); return reinterpret_cast<sptr_t>(doc); } @@ -7616,12 +7616,15 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { (reinterpret_cast<Document *>(lParam))->Release(); break; + case SCI_GETDOCUMENTOPTIONS: + return pdoc->Options(); + case SCI_CREATELOADER: { Document *doc = new Document(static_cast<int>(lParam)); doc->AddRef(); doc->Allocate(static_cast<int>(wParam)); doc->SetUndoCollection(false); - pcs = ContractionStateCreate(); + pcs = ContractionStateCreate(pdoc->IsLarge()); return reinterpret_cast<sptr_t>(static_cast<ILoader *>(doc)); } diff --git a/src/MarginView.cxx b/src/MarginView.cxx index a7f9a9a2d..02a961b10 100644 --- a/src/MarginView.cxx +++ b/src/MarginView.cxx @@ -367,10 +367,12 @@ void MarginView::PaintMargin(Surface *surface, Sci::Line topLine, PRectangle rc, rcMarker.bottom = static_cast<XYPOSITION>(yposScreen + vs.lineHeight); if (vs.ms[margin].style == SC_MARGIN_NUMBER) { if (firstSubLine) { - char number[100] = ""; - if (lineDoc >= 0) - sprintf(number, "%d", lineDoc + 1); + std::string sNumber; + if (lineDoc >= 0) { + sNumber = std::to_string(lineDoc + 1); + } if (model.foldFlags & (SC_FOLDFLAG_LEVELNUMBERS | SC_FOLDFLAG_LINESTATE)) { + char number[100] = ""; if (model.foldFlags & SC_FOLDFLAG_LEVELNUMBERS) { const int lev = model.pdoc->GetLevel(lineDoc); sprintf(number, "%c%c %03X %03X", @@ -383,14 +385,15 @@ void MarginView::PaintMargin(Surface *surface, Sci::Line topLine, PRectangle rc, const int state = model.pdoc->GetLineState(lineDoc); sprintf(number, "%0X", state); } + sNumber = number; } PRectangle rcNumber = rcMarker; // Right justify - const XYPOSITION width = surface->WidthText(fontLineNumber, number, static_cast<int>(strlen(number))); + const XYPOSITION width = surface->WidthText(fontLineNumber, sNumber.c_str(), static_cast<int>(sNumber.length())); const XYPOSITION xpos = rcNumber.right - width - vs.marginNumberPadding; rcNumber.left = xpos; DrawTextNoClipPhase(surface, rcNumber, vs.styles[STYLE_LINENUMBER], - rcNumber.top + vs.maxAscent, number, static_cast<int>(strlen(number)), drawAll); + rcNumber.top + vs.maxAscent, sNumber.c_str(), static_cast<int>(sNumber.length()), drawAll); } else if (vs.wrapVisualFlags & SC_WRAPVISUALFLAG_MARGIN) { PRectangle rcWrapMarker = rcMarker; rcWrapMarker.right -= wrapMarkerPaddingRight; diff --git a/src/Position.h b/src/Position.h index a8fbfb494..e0bbcb53f 100644 --- a/src/Position.h +++ b/src/Position.h @@ -16,8 +16,8 @@ namespace Sci { -typedef int Position; -typedef int Line; +typedef ptrdiff_t Position; +typedef ptrdiff_t Line; const Position invalidPosition = -1; diff --git a/src/RunStyles.cxx b/src/RunStyles.cxx index 03692f673..f92da5047 100644 --- a/src/RunStyles.cxx +++ b/src/RunStyles.cxx @@ -306,3 +306,5 @@ void RunStyles<DISTANCE, STYLE>::Check() const { template class Scintilla::RunStyles<int, int>; template class Scintilla::RunStyles<int, char>; +template class Scintilla::RunStyles<ptrdiff_t, int>; +template class Scintilla::RunStyles<ptrdiff_t, char>; diff --git a/test/unit/testCellBuffer.cxx b/test/unit/testCellBuffer.cxx index f0192423c..cef88cb17 100644 --- a/test/unit/testCellBuffer.cxx +++ b/test/unit/testCellBuffer.cxx @@ -26,7 +26,7 @@ TEST_CASE("CellBuffer") { const char sText[] = "Scintilla"; const Sci::Position sLength = static_cast<Sci::Position>(strlen(sText)); - CellBuffer cb(true); + CellBuffer cb(true, false); SECTION("InsertOneLine") { bool startSequence = false; diff --git a/test/unit/testContractionState.cxx b/test/unit/testContractionState.cxx index b0346dfc9..fcee90287 100644 --- a/test/unit/testContractionState.cxx +++ b/test/unit/testContractionState.cxx @@ -25,7 +25,7 @@ using namespace Scintilla; TEST_CASE("ContractionState") { - std::unique_ptr<IContractionState> pcs = ContractionStateCreate(); + std::unique_ptr<IContractionState> pcs = ContractionStateCreate(false); SECTION("IsEmptyInitially") { REQUIRE(1 == pcs->LinesInDoc()); diff --git a/test/unit/testPartitioning.cxx b/test/unit/testPartitioning.cxx index 69bbe7957..449253ef3 100644 --- a/test/unit/testPartitioning.cxx +++ b/test/unit/testPartitioning.cxx @@ -50,7 +50,7 @@ TEST_CASE("SplitVectorWithRangeAdd") { TEST_CASE("Partitioning") { - Partitioning<int> part(growSize); + Partitioning<Sci::Position> part(growSize); SECTION("IsEmptyInitially") { REQUIRE(1 == part.Partitions()); |