diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ScintillaBase.cxx | 38 | 
1 files changed, 13 insertions, 25 deletions
| diff --git a/src/ScintillaBase.cxx b/src/ScintillaBase.cxx index 4f182850a..b812426c2 100644 --- a/src/ScintillaBase.cxx +++ b/src/ScintillaBase.cxx @@ -279,31 +279,19 @@ void ScintillaBase::AutoCompleteCompleted(char fillUp/*='\0'*/) {  	}  	ac.Cancel(); -	if (ac.ignoreCase) { -		if (currentPos != ac.posStart) { -			pdoc->DeleteChars(ac.posStart, currentPos - ac.posStart); -		} -		SetEmptySelection(ac.posStart - ac.startLen); -		pdoc->DeleteChars(ac.posStart - ac.startLen, ac.startLen); -		if (item != -1) { -			SString piece = selected; -			if (fillUp) -				piece += fillUp; -			pdoc->InsertString(currentPos, piece.c_str()); -			SetEmptySelection(currentPos + piece.length()); -		} -	} else { -		if (currentPos != ac.posStart) { -			pdoc->DeleteChars(ac.posStart, currentPos - ac.posStart); -		} -		SetEmptySelection(ac.posStart); -		if (item != -1) { -			SString piece = selected + ac.startLen; -			if (fillUp) -				piece += fillUp; -			pdoc->InsertString(currentPos, piece.c_str()); -			SetEmptySelection(currentPos + piece.length()); -		} +	Position firstPos = ac.posStart - ac.startLen; +	if (currentPos < firstPos) +		return; +	if (currentPos != firstPos) { +		pdoc->DeleteChars(firstPos, currentPos - firstPos); +	} +	SetEmptySelection(ac.posStart); +	if (item != -1) { +		SString piece = selected; +		if (fillUp) +			piece += fillUp; +		pdoc->InsertString(firstPos, piece.c_str()); +		SetEmptySelection(firstPos + piece.length());  	}  } | 
