From f4bb4a22d4a6cdd1cdfa996c51ed477ef1a29e59 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Sat, 8 Sep 2018 13:01:59 -0700 Subject: [PATCH 1/3] Fallback on default color when linkifier can't find the character This probably doesn't fix the underlying problem, but it will make it obvious by using the white background color and more easily help identify the problem case. Fixes #1669 --- src/Linkifier.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Linkifier.ts b/src/Linkifier.ts index 8615daf8e..6080c4aea 100644 --- a/src/Linkifier.ts +++ b/src/Linkifier.ts @@ -220,8 +220,11 @@ export class Linkifier extends EventEmitter implements ILinkifier { // Get cell color const line = this._terminal.buffer.lines.get(this._terminal.buffer.ydisp + rowIndex); const char = line.get(index); - const attr: number = char[CHAR_DATA_ATTR_INDEX]; - const fg = (attr >> 9) & 0x1ff; + let fg: number | undefined; + if (char) { + const attr: number = char[CHAR_DATA_ATTR_INDEX]; + fg = (attr >> 9) & 0x1ff; + } // Ensure the link is valid before registering if (matcher.validationCallback) { From 715c078b6db93eb0d6f825e4d08ff815d9920017 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Sun, 9 Sep 2018 07:22:18 -0700 Subject: [PATCH 2/3] Fix lint in demo --- demo/client.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/demo/client.ts b/demo/client.ts index 08545c09d..4af03548b 100644 --- a/demo/client.ts +++ b/demo/client.ts @@ -100,7 +100,7 @@ function createTerminal(): void { addDomListener(actionElements.findNext, 'keypress', (e) => { if (e.key === 'Enter') { e.preventDefault(); - let searchOptions = { + const searchOptions = { regex: (document.getElementById('regex') as HTMLInputElement).checked, wholeWord: false, caseSensitive: false @@ -111,7 +111,7 @@ function createTerminal(): void { addDomListener(actionElements.findPrevious, 'keypress', (e) => { if (e.key === 'Enter') { e.preventDefault(); - let searchOptions = { + const searchOptions = { regex: (document.getElementById('regex') as HTMLInputElement).checked, wholeWord: false, caseSensitive: false From d943a5c890c1d38c91ff49a4c7962368ee19790e Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Sun, 9 Sep 2018 07:28:22 -0700 Subject: [PATCH 3/3] Run tslint on the demo Fixes #1673 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f2591d038..468c027ed 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "scripts": { "start": "node demo/start", "start-zmodem": "node demo/zmodem/app", - "lint": "tslint 'src/**/*.ts'", + "lint": "tslint 'src/**/*.ts' './demo/**/*.ts'", "test": "npm-run-all mocha lint", "test-debug": "node --inspect-brk node_modules/.bin/gulp test", "test-suite": "gulp mocha-suite --test",