aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2018-01-26 11:12:10 +1100
committerNeil <nyamatongwe@gmail.com>2018-01-26 11:12:10 +1100
commit4a5e9654ce0c4a6cd6c1aff452f8f9344a9849a6 (patch)
tree9d2780782684b9bcc794c1100dd0a5b3010d2d97
parent365542e73ee97316f4eaf1b3edc0cb6109c8a850 (diff)
downloadscintilla-mirror-4a5e9654ce0c4a6cd6c1aff452f8f9344a9849a6.tar.gz
Add documentOption argument to SCI_CREATELOADER.
-rw-r--r--doc/ScintillaDoc.html35
-rw-r--r--include/Scintilla.h1
-rw-r--r--include/Scintilla.iface7
-rw-r--r--src/Editor.cxx1
4 files changed, 30 insertions, 14 deletions
diff --git a/doc/ScintillaDoc.html b/doc/ScintillaDoc.html
index 1e71bafbd..c2303c609 100644
--- a/doc/ScintillaDoc.html
+++ b/doc/ScintillaDoc.html
@@ -119,7 +119,7 @@
<h1>Scintilla Documentation</h1>
- <p>Last edited 10 January 2018 NH</p>
+ <p>Last edited 31 January 2018 NH</p>
<p>There is <a class="jump" href="Design.html">an overview of the internal design of
Scintilla</a>.<br />
@@ -5711,7 +5711,7 @@ sptr_t CallScintilla(unsigned int iMessage, uptr_t wParam, sptr_t lParam){
<code><a class="message" href="#SCI_GETDOCPOINTER">SCI_GETDOCPOINTER &rarr; document *</a><br />
<a class="message" href="#SCI_SETDOCPOINTER">SCI_SETDOCPOINTER(&lt;unused&gt;, document
*doc)</a><br />
- <a class="message" href="#SCI_CREATEDOCUMENT">SCI_CREATEDOCUMENT &rarr; document *</a><br />
+ <a class="message" href="#SCI_CREATEDOCUMENT">SCI_CREATEDOCUMENT(int bytes, int documentOption) &rarr; document *</a><br />
<a class="message" href="#SCI_ADDREFDOCUMENT">SCI_ADDREFDOCUMENT(&lt;unused&gt;, document
*doc)</a><br />
<a class="message" href="#SCI_RELEASEDOCUMENT">SCI_RELEASEDOCUMENT(&lt;unused&gt;, document
@@ -5732,13 +5732,20 @@ 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 &rarr; document *</b><br />
+ <p><b id="SCI_CREATEDOCUMENT">SCI_CREATEDOCUMENT(int bytes, int documentOption) &rarr; 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
+ 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
<code>SCI_SETDOCPOINTER</code> so that the Scintilla window owns it or you must make sure that
- you reduce the reference count by 1 with <code>SCI_RELEASEDOCUMENT</code> before you close the
- application to avoid memory leaks.</p>
+ you reduce the reference count by 1 with <code>SCI_RELEASEDOCUMENT</code> before you close the
+ application to avoid memory leaks. 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_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><b id="SCI_ADDREFDOCUMENT">SCI_ADDREFDOCUMENT(&lt;unused&gt;, document *doc)</b><br />
This increases the reference count of a document by 1. If you want to replace the current
@@ -5765,7 +5772,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) &rarr; int</a><br />
+ <code><a class="message" href="#SCI_CREATELOADER">SCI_CREATELOADER(int bytes, int documentOption) &rarr; 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
@@ -5774,13 +5781,17 @@ 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) &rarr; int</b><br />
+ <p><b id="SCI_CREATELOADER">SCI_CREATELOADER(int bytes, int documentOption) &rarr; 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 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>
+
<h4>ILoader</h4>
<div class="highlighted">
@@ -6573,7 +6584,7 @@ sptr_t CallScintilla(unsigned int iMessage, uptr_t wParam, sptr_t lParam){
On GTK+, there are storage and performance costs to accessibility, so it can be disabled
by calling <code>SCI_SETACCESSIBILITY</code>.
</p>
-
+
<table class="standard" summary="Accessibility status">
<tbody>
<tr>
@@ -6603,7 +6614,7 @@ sptr_t CallScintilla(unsigned int iMessage, uptr_t wParam, sptr_t lParam){
</tr>
</tbody>
</table>
-
+
<h2 id="Lexer">Lexer</h2>
<p>If you define the symbol <code>SCI_LEXER</code> when building Scintilla, (this is sometimes
@@ -6894,7 +6905,7 @@ With Scintilla 4, 64-bit builds define these as 64-bit types to allow future imp
<p>
Methods that return strings as <code>const char *</code> 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.
</p>
<p>
diff --git a/include/Scintilla.h b/include/Scintilla.h
index 74ec5b91a..7ab202da5 100644
--- a/include/Scintilla.h
+++ b/include/Scintilla.h
@@ -689,6 +689,7 @@ typedef sptr_t (*SciFnDirect)(sptr_t ptr, unsigned int iMessage, uptr_t wParam,
#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 --git a/include/Scintilla.iface b/include/Scintilla.iface
index bb00ed634..68e528de1 100644
--- a/include/Scintilla.iface
+++ b/include/Scintilla.iface
@@ -1771,9 +1771,12 @@ set void SetZoom=2373(int zoomInPoints,)
# 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 @@ set void SetTechnology=2630(int technology,)
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 --git a/src/Editor.cxx b/src/Editor.cxx
index 09142e8f9..84ae3e318 100644
--- a/src/Editor.cxx
+++ b/src/Editor.cxx
@@ -7556,6 +7556,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
case SCI_CREATEDOCUMENT: {
Document *doc = new Document();
doc->AddRef();
+ doc->Allocate(static_cast<int>(wParam));
return reinterpret_cast<sptr_t>(doc);
}