diff options
| author | Neil <nyamatongwe@gmail.com> | 2013-09-26 14:07:33 +1000 | 
|---|---|---|
| committer | Neil <nyamatongwe@gmail.com> | 2013-09-26 14:07:33 +1000 | 
| commit | 4211b1982d752b37abf8c4549d46399b330faa59 (patch) | |
| tree | 716f921714df536b93bc26276d3df1068fd4ccc5 | |
| parent | 43e38721968da1f52d159c555648fc7578b62c4b (diff) | |
| download | scintilla-mirror-4211b1982d752b37abf8c4549d46399b330faa59.tar.gz | |
Enhance stability by defining GetLineEndPosition for lines beyond end of document
to return document size.
| -rw-r--r-- | doc/ScintillaDoc.html | 6 | ||||
| -rw-r--r-- | src/Document.cxx | 2 | ||||
| -rw-r--r-- | test/simpleTests.py | 6 | 
3 files changed, 10 insertions, 4 deletions
| diff --git a/doc/ScintillaDoc.html b/doc/ScintillaDoc.html index 8c7499ed9..f408dafad 100644 --- a/doc/ScintillaDoc.html +++ b/doc/ScintillaDoc.html @@ -1306,9 +1306,9 @@ struct Sci_TextToFind {      <p><b id="SCI_GETLINEENDPOSITION">SCI_GETLINEENDPOSITION(int line)</b><br />       This returns the position at the end of the line, before any line end characters. If <code>line</code> -    is the last line in the document (which does not have any end of line characters), the result is the size of the -    document. If <code>line</code> is negative or <code>line</code> >= <a class="message" -    href="#SCI_GETLINECOUNT"><code>SCI_GETLINECOUNT()</code></a>, the result is undefined.</p> +    is the last line in the document (which does not have any end of line characters) or greater, +    the result is the size of the document. +    If <code>line</code> is negative the result is undefined.</p>      <p><b id="SCI_LINELENGTH">SCI_LINELENGTH(int line)</b><br />       This returns the length of the line, including any line end characters. If <code>line</code> diff --git a/src/Document.cxx b/src/Document.cxx index b8ab420fd..78aa22794 100644 --- a/src/Document.cxx +++ b/src/Document.cxx @@ -279,7 +279,7 @@ int SCI_METHOD Document::LineStart(int line) const {  }  int SCI_METHOD Document::LineEnd(int line) const { -	if (line == LinesTotal() - 1) { +	if (line >= LinesTotal() - 1) {  		return LineStart(line + 1);  	} else {  		int position = LineStart(line + 1); diff --git a/test/simpleTests.py b/test/simpleTests.py index e814f45ca..03deb566d 100644 --- a/test/simpleTests.py +++ b/test/simpleTests.py @@ -86,6 +86,12 @@ class TestSimple(unittest.TestCase):  		self.assertEquals(self.ed.Anchor, 0)  		self.assertEquals(self.ed.CurrentPos, 1) +	def testBeyonEnd(self): +		self.ed.AddText(1, b"x") +		self.assertEquals(self.ed.GetLineEndPosition(0), 1) +		self.assertEquals(self.ed.GetLineEndPosition(1), 1) +		self.assertEquals(self.ed.GetLineEndPosition(2), 1) +  	def testSelection(self):  		self.assertEquals(self.ed.CurrentPos, 0)  		self.assertEquals(self.ed.Anchor, 0) | 
