@xterm/xterm 6.1.0-beta.243 → 6.1.0-beta.245

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@xterm/xterm",
3
3
  "description": "Full xterm terminal, in your browser",
4
- "version": "6.1.0-beta.243",
4
+ "version": "6.1.0-beta.245",
5
5
  "main": "lib/xterm.js",
6
6
  "module": "lib/xterm.mjs",
7
7
  "style": "css/xterm.css",
@@ -111,5 +111,5 @@
111
111
  "ws": "^8.2.3",
112
112
  "xterm-benchmark": "^0.3.1"
113
113
  },
114
- "commit": "95d9224b8cf1cbe894b0e5e1d5518adf842118e7"
114
+ "commit": "72941247360141abafa3e9db1261aa2bf6bf8af6"
115
115
  }
@@ -567,8 +567,9 @@ export class InputHandler extends Disposable implements IInputHandler {
567
567
  if (screenReaderMode) {
568
568
  this._onA11yChar.fire(stringFromCodePoint(code));
569
569
  }
570
- if (this._getCurrentLinkId()) {
571
- this._oscLinkService.addLineToLink(this._getCurrentLinkId(), this._activeBuffer.ybase + this._activeBuffer.y);
570
+ const linkId = this._getCurrentLinkId();
571
+ if (linkId) {
572
+ this._oscLinkService.addLineToLink(linkId, this._activeBuffer.ybase + this._activeBuffer.y);
572
573
  }
573
574
 
574
575
  // goto next line if ch would overflow
@@ -6,4 +6,4 @@
6
6
  /**
7
7
  * The xterm.js version. This is updated by the publish script from package.json.
8
8
  */
9
- export const XTERM_VERSION = '6.1.0-beta.243';
9
+ export const XTERM_VERSION = '6.1.0-beta.245';
@@ -8,6 +8,7 @@ import { AttributeData } from 'common/buffer/AttributeData';
8
8
  import { CellData } from 'common/buffer/CellData';
9
9
  import { Attributes, BgFlags, CHAR_DATA_ATTR_INDEX, CHAR_DATA_CHAR_INDEX, CHAR_DATA_WIDTH_INDEX, Content, NULL_CELL_CHAR, NULL_CELL_CODE, NULL_CELL_WIDTH, WHITESPACE_CELL_CHAR } from 'common/buffer/Constants';
10
10
  import { stringFromCodePoint } from 'common/input/TextDecoder';
11
+ import { StringBuilder } from 'common/StringBuilder';
11
12
 
12
13
  // Buffer memory layout:
13
14
  //
@@ -41,6 +42,7 @@ export const DEFAULT_ATTR_DATA = Object.freeze(new AttributeData());
41
42
  // Work variables to avoid garbage collection
42
43
  let $startIndex = 0;
43
44
  const $workCell = new CellData();
45
+ const $translateToStringBuilder = new StringBuilder();
44
46
 
45
47
  export interface IBufferLineStringCacheEntry {
46
48
  value: string | undefined;
@@ -570,12 +572,12 @@ export class BufferLine implements IBufferLine {
570
572
  if (outColumns) {
571
573
  outColumns.length = 0;
572
574
  }
573
- let result = '';
575
+ $translateToStringBuilder.reset();
574
576
  while (startCol < endCol) {
575
577
  const content = this._data[startCol * Constants.CELL_INDICIES + Cell.CONTENT];
576
578
  const cp = content & Content.CODEPOINT_MASK;
577
579
  const chars = (content & Content.IS_COMBINED_MASK) ? this._combined[startCol] : (cp) ? stringFromCodePoint(cp) : WHITESPACE_CELL_CHAR;
578
- result += chars;
580
+ $translateToStringBuilder.append(chars);
579
581
  if (outColumns) {
580
582
  for (let i = 0; i < chars.length; ++i) {
581
583
  outColumns.push(startCol);
@@ -586,6 +588,8 @@ export class BufferLine implements IBufferLine {
586
588
  if (outColumns) {
587
589
  outColumns.push(startCol);
588
590
  }
591
+ const result = $translateToStringBuilder.toString();
592
+ $translateToStringBuilder.reset();
589
593
  if (isCanonicalRequest) {
590
594
  const cacheEntry = this._getStringCacheEntry(true)!;
591
595
  cacheEntry.value = result;