diff options
Diffstat (limited to 'src/ScintillaBase.cxx')
| -rw-r--r-- | src/ScintillaBase.cxx | 10 | 
1 files changed, 6 insertions, 4 deletions
| diff --git a/src/ScintillaBase.cxx b/src/ScintillaBase.cxx index 039539ad3..ed391c846 100644 --- a/src/ScintillaBase.cxx +++ b/src/ScintillaBase.cxx @@ -198,16 +198,18 @@ void ScintillaBase::AutoCompleteStart(int lenEntered, const char *list) {  	if (ac.chooseSingle && (listType == 0)) {  		if (list && !strchr(list, ac.GetSeparator())) { +			const char *typeSep = strchr(list, ac.GetTypesep()); +			size_t lenInsert = (typeSep) ? (typeSep-list) : strlen(list);  			if (ac.ignoreCase) {  				SetEmptySelection(currentPos - lenEntered);  				pdoc->DeleteChars(currentPos, lenEntered);  				SetEmptySelection(currentPos); -				pdoc->InsertString(currentPos, list); -				SetEmptySelection(currentPos + static_cast<int>(strlen(list))); +				pdoc->InsertString(currentPos, list, lenInsert); +				SetEmptySelection(currentPos + lenInsert);  			} else {  				SetEmptySelection(currentPos); -				pdoc->InsertString(currentPos, list + lenEntered); -				SetEmptySelection(currentPos + static_cast<int>(strlen(list + lenEntered))); +				pdoc->InsertString(currentPos, list + lenEntered, lenInsert - lenEntered); +				SetEmptySelection(currentPos + lenInsert - lenEntered);  			}  			return;  		} | 
