MCPcopy Create free account
hub / github.com/denoland/std / findCSI

Function findCSI

cli/unstable_get_cursor.ts:50–67  ·  view source on GitHub ↗
(
  buffer: Uint8Array,
)

Source from the content-addressed store, hash-verified

48}
49
50function findCSI(
51 buffer: Uint8Array,
52): { parameters: Uint8Array; intermediates: Uint8Array; final: number } | null {
53 for (let i = 0; i < buffer.length - 1; ++i) {
54 if (buffer[i] === 0x1b && buffer[i + 1] === 0x5b) {
55 i += 2;
56 const parameters = getRange(buffer.subarray(i), 0x30, 0x3f);
57 i += parameters.length;
58 const intermediates = getRange(buffer.subarray(i), 0x20, 0x2f);
59 i += intermediates.length;
60 const final = buffer[i];
61 if (final != undefined && 0x40 <= final && final <= 0x7e) {
62 return { parameters, intermediates, final };
63 }
64 }
65 }
66 return null;
67}
68
69function getRange(buffer: Uint8Array, min: number, max: number) {
70 let i = 0;

Callers 1

askForCursorPositionSyncFunction · 0.85

Calls 1

getRangeFunction · 0.85

Tested by

no test coverage detected