From 35fce59f65c02414af6cf0fcdc698c61ae0f8b47 Mon Sep 17 00:00:00 2001 From: mitchell <70453897+667e-11@users.noreply.github.com> Date: Sun, 18 Feb 2018 10:41:51 -0500 Subject: Backported bugfixes and changes from Scintilla 4.0.2 to 4.0.3. --- src/scintilla_backports/6441_92c8f0f1b3e6.patch | 157 ++++++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 src/scintilla_backports/6441_92c8f0f1b3e6.patch (limited to 'src/scintilla_backports/6441_92c8f0f1b3e6.patch') diff --git a/src/scintilla_backports/6441_92c8f0f1b3e6.patch b/src/scintilla_backports/6441_92c8f0f1b3e6.patch new file mode 100644 index 00000000..edcc6338 --- /dev/null +++ b/src/scintilla_backports/6441_92c8f0f1b3e6.patch @@ -0,0 +1,157 @@ +# HG changeset patch +# User Neil +# Date 1516925530 -39600 +# Node ID 92c8f0f1b3e64900cbb868a56936898693b9cfcc +# Parent a1731ae83d2ac87c29f6b502efc5c4a747e0b704 +Add documentOption argument to SCI_CREATELOADER. + +diff -r a1731ae83d2a -r 92c8f0f1b3e6 doc/ScintillaDoc.html +--- a/doc/ScintillaDoc.html Tue Jan 30 12:40:53 2018 +1100 ++++ b/doc/ScintillaDoc.html Fri Jan 26 11:12:10 2018 +1100 +@@ -119,7 +119,7 @@ + +

Scintilla Documentation

+ +-

Last edited 10 January 2018 NH

++

Last edited 31 January 2018 NH

+ +

There is an overview of the internal design of + Scintilla.
+@@ -5711,7 +5711,7 @@ + SCI_GETDOCPOINTER → document *
+ SCI_SETDOCPOINTER(<unused>, document + *doc)
+- SCI_CREATEDOCUMENT → document *
++ SCI_CREATEDOCUMENT(int bytes, int documentOption) → document *
+ SCI_ADDREFDOCUMENT(<unused>, document + *doc)
+ SCI_RELEASEDOCUMENT(<unused>, document +@@ -5732,13 +5732,20 @@ + window.
+ 6. If doc was not 0, its reference count is increased by 1.

+ +-

SCI_CREATEDOCUMENT → document *
++

SCI_CREATEDOCUMENT(int bytes, int documentOption) → document *
+ 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 ++ 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 + SCI_SETDOCPOINTER so that the Scintilla window owns it or you must make sure that +- you reduce the reference count by 1 with SCI_RELEASEDOCUMENT before you close the +- application to avoid memory leaks.

++ you reduce the reference count by 1 with SCI_RELEASEDOCUMENT before you close the ++ application to avoid memory leaks. The bytes 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 SCI_CREATEDOCUMENT fails then 0 is returned.

++ ++

The documentOption 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 SC_DOCUMENTOPTION_DEFAULT (0).

+ +

SCI_ADDREFDOCUMENT(<unused>, document *doc)
+ This increases the reference count of a document by 1. If you want to replace the current +@@ -5765,7 +5772,7 @@ + +

Loading in the background

+ +-
SCI_CREATELOADER(int bytes) → int
++ SCI_CREATELOADER(int bytes, int documentOption) → int
+
+ +

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 +@@ -5774,13 +5781,17 @@ + +

To avoid these issues, a loader object may be created and used to load the file. The loader object supports the ILoader interface.

+ +-

SCI_CREATELOADER(int bytes) → int
++

SCI_CREATELOADER(int bytes, int documentOption) → int
+ Create an object that supports the ILoader interface which can be used to load data and then + be turned into a Scintilla document object for attachment to a view object. + The bytes 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 SCI_CREATELOADER fails then 0 is returned.

+ ++

The documentOption 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 SC_DOCUMENTOPTION_DEFAULT (0).

++ +

ILoader

+ +
+@@ -6573,7 +6584,7 @@ + On GTK+, there are storage and performance costs to accessibility, so it can be disabled + by calling SCI_SETACCESSIBILITY. +

+- ++ + + + +@@ -6603,7 +6614,7 @@ + + +
+- ++ +

Lexer

+ +

If you define the symbol SCI_LEXER when building Scintilla, (this is sometimes +@@ -6894,7 +6905,7 @@ +

+ Methods that return strings as const char * are not required to maintain separate allocations indefinitely: + lexer implementations may own a single buffer that is reused for each call. +-Callers should make an immediate copy of returned strings. ++Callers should make an immediate copy of returned strings. +

+ +

+diff -r a1731ae83d2a -r 92c8f0f1b3e6 include/Scintilla.h +--- a/include/Scintilla.h Tue Jan 30 12:40:53 2018 +1100 ++++ b/include/Scintilla.h Fri Jan 26 11:12:10 2018 +1100 +@@ -689,6 +689,7 @@ + #define SCI_SELECTIONISRECTANGLE 2372 + #define SCI_SETZOOM 2373 + #define SCI_GETZOOM 2374 ++#define SC_DOCUMENTOPTION_DEFAULT 0 + #define SCI_CREATEDOCUMENT 2375 + #define SCI_ADDREFDOCUMENT 2376 + #define SCI_RELEASEDOCUMENT 2377 +diff -r a1731ae83d2a -r 92c8f0f1b3e6 include/Scintilla.iface +--- a/include/Scintilla.iface Tue Jan 30 12:40:53 2018 +1100 ++++ b/include/Scintilla.iface Fri Jan 26 11:12:10 2018 +1100 +@@ -1771,9 +1771,12 @@ + # Retrieve the zoom level. + get int GetZoom=2374(,) + ++enu DocumentOption=SC_DOCUMENTOPTION_ ++val SC_DOCUMENTOPTION_DEFAULT=0 ++ + # Create a new document object. + # Starts with reference count of 1 and not selected into editor. +-fun int CreateDocument=2375(,) ++fun int CreateDocument=2375(int bytes, int documentOption) + # Extend life of document. + fun void AddRefDocument=2376(, int doc) + # Release a reference to the document, deleting document if it fades to black. +@@ -2540,7 +2543,7 @@ + get int GetTechnology=2631(,) + + # Create an ILoader*. +-fun int CreateLoader=2632(int bytes,) ++fun int CreateLoader=2632(int bytes, int documentOption) + + # On OS X, show a find indicator. + fun void FindIndicatorShow=2640(position start, position end) +diff -r a1731ae83d2a -r 92c8f0f1b3e6 src/Editor.cxx +--- a/src/Editor.cxx Tue Jan 30 12:40:53 2018 +1100 ++++ b/src/Editor.cxx Fri Jan 26 11:12:10 2018 +1100 +@@ -7556,6 +7556,7 @@ + case SCI_CREATEDOCUMENT: { + Document *doc = new Document(); + doc->AddRef(); ++ doc->Allocate(static_cast(wParam)); + return reinterpret_cast(doc); + } + -- cgit v1.2.3