diff options
Diffstat (limited to 'src/scintilla_backports/6448_431b814a54a6.patch')
-rw-r--r-- | src/scintilla_backports/6448_431b814a54a6.patch | 307 |
1 files changed, 0 insertions, 307 deletions
diff --git a/src/scintilla_backports/6448_431b814a54a6.patch b/src/scintilla_backports/6448_431b814a54a6.patch deleted file mode 100644 index a0fca282..00000000 --- a/src/scintilla_backports/6448_431b814a54a6.patch +++ /dev/null @@ -1,307 +0,0 @@ -# HG changeset patch -# User Neil <nyamatongwe@gmail.com> -# Date 1517542495 -39600 -# Node ID 431b814a54a62d81c8069655bbbebec7bda782e3 -# Parent 44ff2195a2026367e556e7dd9ef83af81a07219e -Implement SC_DOCUMENTOPTION_STYLES_NONE. - -diff -r 44ff2195a202 -r 431b814a54a6 doc/ScintillaDoc.html ---- a/doc/ScintillaDoc.html Fri Feb 02 08:37:32 2018 +1100 -+++ b/doc/ScintillaDoc.html Fri Feb 02 14:34:55 2018 +1100 -@@ -119,7 +119,7 @@ - - <h1>Scintilla Documentation</h1> - -- <p>Last edited 31 January 2018 NH</p> -+ <p>Last edited 1 February 2018 NH</p> - - <p>There is <a class="jump" href="Design.html">an overview of the internal design of - Scintilla</a>.<br /> -@@ -5743,9 +5743,38 @@ - 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>The <code class="parameter">documentOption</code> argument may be used in future versions -- to choose between different document capabilities which affect memory allocation and performance. -- The only valid value for now is <code>SC_DOCUMENTOPTION_DEFAULT</code> (0).</p> -+ <p id="documentOption">The <code class="parameter">documentOption</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 -+ 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> -+ -+ <table class="standard" summary="Document options"> -+ <tbody> -+ <tr> -+ <th align="left">Symbol</th> -+ <th align="left">Value</th> -+ <th align="left">Effect</th> -+ </tr> -+ </tbody> -+ -+ <tbody valign="top"> -+ -+ <tr> -+ <td align="left">SC_DOCUMENTOPTION_DEFAULT</td> -+ <td align="left">0</td> -+ <td align="left">Standard behaviour</td> -+ </tr> -+ -+ <tr> -+ <td align="left">SC_DOCUMENTOPTION_STYLES_NONE</td> -+ <td align="left">1</td> -+ <td align="left">Stop allocation of memory for styles and treat all text as style 0.</td> -+ </tr> -+ -+ </tbody> -+ </table> - - <p><b id="SCI_ADDREFDOCUMENT">SCI_ADDREFDOCUMENT(<unused>, document *doc)</b><br /> - This increases the reference count of a document by 1. If you want to replace the current -@@ -5788,9 +5817,8 @@ - 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 may be used in future versions -- to choose between different document capabilities which affect memory allocation and performance. -- The only valid value for now is <code>SC_DOCUMENTOPTION_DEFAULT</code> (0).</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> - - <h4>ILoader</h4> - -diff -r 44ff2195a202 -r 431b814a54a6 doc/ScintillaHistory.html ---- a/doc/ScintillaHistory.html Fri Feb 02 08:37:32 2018 +1100 -+++ b/doc/ScintillaHistory.html Fri Feb 02 14:34:55 2018 +1100 -@@ -539,6 +539,11 @@ - </li> - <li> - SCI_CREATEDOCUMENT adds a bytes argument to allocate memory for an initial size. -+ SCI_CREATELOADER and SCI_CREATEDOCUMENT add a documentOption argument to -+ allow choosing different document capabilities. -+ </li> -+ <li> -+ Add SC_DOCUMENTOPTION_STYLES_NONE option to stop allocating memory for styles. - </li> - <li> - Add SCI_GETMOVEEXTENDSSELECTION to allow applications to add more -diff -r 44ff2195a202 -r 431b814a54a6 include/Scintilla.h ---- a/include/Scintilla.h Fri Feb 02 08:37:32 2018 +1100 -+++ b/include/Scintilla.h Fri Feb 02 14:34:55 2018 +1100 -@@ -690,6 +690,7 @@ - #define SCI_SETZOOM 2373 - #define SCI_GETZOOM 2374 - #define SC_DOCUMENTOPTION_DEFAULT 0 -+#define SC_DOCUMENTOPTION_STYLES_NONE 1 - #define SCI_CREATEDOCUMENT 2375 - #define SCI_ADDREFDOCUMENT 2376 - #define SCI_RELEASEDOCUMENT 2377 -diff -r 44ff2195a202 -r 431b814a54a6 include/Scintilla.iface ---- a/include/Scintilla.iface Fri Feb 02 08:37:32 2018 +1100 -+++ b/include/Scintilla.iface Fri Feb 02 14:34:55 2018 +1100 -@@ -1773,6 +1773,7 @@ - - enu DocumentOption=SC_DOCUMENTOPTION_ - val SC_DOCUMENTOPTION_DEFAULT=0 -+val SC_DOCUMENTOPTION_STYLES_NONE=1 - - # Create a new document object. - # Starts with reference count of 1 and not selected into editor. -diff -r 44ff2195a202 -r 431b814a54a6 qt/ScintillaEdit/ScintillaDocument.cpp ---- a/qt/ScintillaEdit/ScintillaDocument.cpp Fri Feb 02 08:37:32 2018 +1100 -+++ b/qt/ScintillaEdit/ScintillaDocument.cpp Fri Feb 02 14:34:55 2018 +1100 -@@ -91,7 +91,7 @@ - ScintillaDocument::ScintillaDocument(QObject *parent, void *pdoc_) : - QObject(parent), pdoc(pdoc_), docWatcher(0) { - if (!pdoc) { -- pdoc = new Document(); -+ pdoc = new Document(SC_DOCUMENTOPTION_DEFAULT); - } - docWatcher = new WatcherHelper(this); - (static_cast<Document *>(pdoc))->AddRef(); -diff -r 44ff2195a202 -r 431b814a54a6 src/CellBuffer.cxx ---- a/src/CellBuffer.cxx Fri Feb 02 08:37:32 2018 +1100 -+++ b/src/CellBuffer.cxx Fri Feb 02 14:34:55 2018 +1100 -@@ -342,7 +342,8 @@ - currentAction++; - } - --CellBuffer::CellBuffer() { -+CellBuffer::CellBuffer(bool hasStyles_) : -+ hasStyles(hasStyles_) { - readOnly = false; - utf8LineEnds = 0; - collectingUndo = true; -@@ -369,7 +370,7 @@ - } - - char CellBuffer::StyleAt(Sci::Position position) const { -- return style.ValueAt(position); -+ return hasStyles ? style.ValueAt(position) : 0; - } - - void CellBuffer::GetStyleRange(unsigned char *buffer, Sci::Position position, Sci::Position lengthRetrieve) const { -@@ -377,6 +378,10 @@ - return; - if (position < 0) - return; -+ if (!hasStyles) { -+ std::fill(buffer, buffer + lengthRetrieve, static_cast<unsigned char>(0)); -+ return; -+ } - if ((position + lengthRetrieve) > style.Length()) { - Platform::DebugPrintf("Bad GetStyleRange %d for %d of %d\n", position, - lengthRetrieve, style.Length()); -@@ -414,6 +419,9 @@ - } - - bool CellBuffer::SetStyleAt(Sci::Position position, char styleValue) { -+ if (!hasStyles) { -+ return false; -+ } - const char curVal = style.ValueAt(position); - if (curVal != styleValue) { - style.SetValueAt(position, styleValue); -@@ -424,6 +432,9 @@ - } - - bool CellBuffer::SetStyleFor(Sci::Position position, Sci::Position lengthStyle, char styleValue) { -+ if (!hasStyles) { -+ return false; -+ } - bool changed = false; - PLATFORM_ASSERT(lengthStyle == 0 || - (lengthStyle > 0 && lengthStyle + position <= style.Length())); -@@ -462,7 +473,9 @@ - - void CellBuffer::Allocate(Sci::Position newSize) { - substance.ReAllocate(newSize); -- style.ReAllocate(newSize); -+ if (hasStyles) { -+ style.ReAllocate(newSize); -+ } - } - - void CellBuffer::SetLineEndTypes(int utf8LineEnds_) { -@@ -608,7 +621,9 @@ - } - - substance.InsertFromArray(position, s, 0, insertLength); -- style.InsertValue(position, insertLength, 0); -+ if (hasStyles) { -+ style.InsertValue(position, insertLength, 0); -+ } - - Sci::Line lineInsert = lv.LineFromPosition(position) + 1; - bool atLineStart = lv.LineStart(lineInsert-1) == position; -@@ -738,7 +753,9 @@ - } - } - substance.DeleteRange(position, deleteLength); -- style.DeleteRange(position, deleteLength); -+ if (hasStyles) { -+ style.DeleteRange(position, deleteLength); -+ } - } - - bool CellBuffer::SetUndoCollection(bool collectUndo) { -diff -r 44ff2195a202 -r 431b814a54a6 src/CellBuffer.h ---- a/src/CellBuffer.h Fri Feb 02 08:37:32 2018 +1100 -+++ b/src/CellBuffer.h Fri Feb 02 14:34:55 2018 +1100 -@@ -133,6 +133,7 @@ - */ - class CellBuffer { - private: -+ bool hasStyles; - SplitVector<char> substance; - SplitVector<char> style; - bool readOnly; -@@ -151,7 +152,7 @@ - - public: - -- CellBuffer(); -+ CellBuffer(bool hasStyles_); - ~CellBuffer(); - - /// Retrieving positions outside the range of the buffer works and returns 0 -diff -r 44ff2195a202 -r 431b814a54a6 src/Document.cxx ---- a/src/Document.cxx Fri Feb 02 08:37:32 2018 +1100 -+++ b/src/Document.cxx Fri Feb 02 14:34:55 2018 +1100 -@@ -90,7 +90,8 @@ - return 0; - } - --Document::Document() { -+Document::Document(int options) : -+ cb((options & SC_DOCUMENTOPTION_STYLES_NONE) == 0) { - refCount = 0; - #ifdef _WIN32 - eolMode = SC_EOL_CRLF; -diff -r 44ff2195a202 -r 431b814a54a6 src/Document.h ---- a/src/Document.h Fri Feb 02 08:37:32 2018 +1100 -+++ b/src/Document.h Fri Feb 02 14:34:55 2018 +1100 -@@ -265,7 +265,7 @@ - - DecorationList decorations; - -- Document(); -+ Document(int options); - virtual ~Document(); - - int AddRef(); -diff -r 44ff2195a202 -r 431b814a54a6 src/EditModel.cxx ---- a/src/EditModel.cxx Fri Feb 02 08:37:32 2018 +1100 -+++ b/src/EditModel.cxx Fri Feb 02 14:34:55 2018 +1100 -@@ -69,7 +69,7 @@ - hotspot = Range(Sci::invalidPosition); - hoverIndicatorPos = Sci::invalidPosition; - wrapWidth = LineLayout::wrapWidthInfinite; -- pdoc = new Document(); -+ pdoc = new Document(SC_DOCUMENTOPTION_DEFAULT); - pdoc->AddRef(); - } - -diff -r 44ff2195a202 -r 431b814a54a6 src/Editor.cxx ---- a/src/Editor.cxx Fri Feb 02 08:37:32 2018 +1100 -+++ b/src/Editor.cxx Fri Feb 02 14:34:55 2018 +1100 -@@ -5162,7 +5162,7 @@ - pdoc->RemoveWatcher(this, 0); - pdoc->Release(); - if (document == NULL) { -- pdoc = new Document(); -+ pdoc = new Document(SC_DOCUMENTOPTION_DEFAULT); - } else { - pdoc = document; - } -@@ -7554,7 +7554,7 @@ - return 0; - - case SCI_CREATEDOCUMENT: { -- Document *doc = new Document(); -+ Document *doc = new Document(static_cast<int>(lParam)); - doc->AddRef(); - doc->Allocate(static_cast<int>(wParam)); - return reinterpret_cast<sptr_t>(doc); -@@ -7569,7 +7569,7 @@ - break; - - case SCI_CREATELOADER: { -- Document *doc = new Document(); -+ Document *doc = new Document(static_cast<int>(lParam)); - doc->AddRef(); - doc->Allocate(static_cast<int>(wParam)); - doc->SetUndoCollection(false); -diff -r 44ff2195a202 -r 431b814a54a6 test/unit/testCellBuffer.cxx ---- a/test/unit/testCellBuffer.cxx Fri Feb 02 08:37:32 2018 +1100 -+++ b/test/unit/testCellBuffer.cxx Fri Feb 02 14:34:55 2018 +1100 -@@ -25,7 +25,7 @@ - const char sText[] = "Scintilla"; - const Sci::Position sLength = static_cast<Sci::Position>(strlen(sText)); - -- CellBuffer cb; -+ CellBuffer cb(true); - - SECTION("InsertOneLine") { - bool startSequence = false; |