diff options
| -rw-r--r-- | doc/ScintillaHistory.html | 3 | ||||
| -rw-r--r-- | src/Document.cxx | 9 | 
2 files changed, 7 insertions, 5 deletions
| diff --git a/doc/ScintillaHistory.html b/doc/ScintillaHistory.html index e2b770fb1..2113dacba 100644 --- a/doc/ScintillaHistory.html +++ b/doc/ScintillaHistory.html @@ -517,6 +517,9 @@  	<a href="http://sourceforge.net/p/scintilla/bugs/1703/">Bug #1703</a>.  	</li>  	<li> +	Ensure SCI_POSITIONRELATIVE returns a position clamped into the document range sensibly. +	</li> +	<li>  	Fix link error on Windows when SCI_NAMESPACE used.  	</li>  	<li> diff --git a/src/Document.cxx b/src/Document.cxx index 7d34dace1..c25dc84b9 100644 --- a/src/Document.cxx +++ b/src/Document.cxx @@ -767,24 +767,23 @@ bool Document::NextCharacter(int &pos, int moveDir) const {  	}  } -// Return -1  on out-of-bounds  int SCI_METHOD Document::GetRelativePosition(int positionStart, int characterOffset) const {  	int pos = positionStart;  	if (dbcsCodePage) {  		const int increment = (characterOffset > 0) ? 1 : -1;  		while (characterOffset != 0) {  			const int posNext = NextPosition(pos, increment); -			if (posNext == pos) +			if (posNext == Length()) +				return posNext; +			else if (posNext == pos)  				return INVALID_POSITION;  			pos = posNext;  			characterOffset -= increment;  		}  	} else {  		pos = positionStart + characterOffset; -		if ((pos < 0) || (pos > Length())) -			return INVALID_POSITION;  	} -	return pos; +	return ClampPositionIntoDocument(pos);  }  int Document::GetRelativePositionUTF16(int positionStart, int characterOffset) const { | 
