Fix search for wide unicode

Part of #1103
This commit is contained in:
Daniel Imms
2018-01-16 07:06:10 -08:00
parent be18507df6
commit 8d3bdad7e4
+10 -1
View File
@@ -114,8 +114,17 @@ export class SearchHelper {
private _findInLine(term: string, y: number): ISearchResult {
const lowerStringLine = this._terminal.buffer.translateBufferLineToString(y, true).toLowerCase();
const lowerTerm = term.toLowerCase();
const searchIndex = lowerStringLine.indexOf(lowerTerm);
let searchIndex = lowerStringLine.indexOf(lowerTerm);
if (searchIndex >= 0) {
const line = this._terminal.buffer.lines.get(y);
for (let i = 0; i < searchIndex; i++) {
// Adjust the selection for empty characters following wide unicode chars
const char = line[i];
const charWidth = char[2/*CHAR_DATA_WIDTH_INDEX*/];
if (charWidth === 0) {
searchIndex++;
}
}
return {
term,
col: searchIndex,