diff --git a/deno.json b/deno.json index 10f7a9e..db1ce79 100644 --- a/deno.json +++ b/deno.json @@ -1,6 +1,6 @@ { "name": "@eu-ge-ne/text-buf", - "version": "0.13.5", + "version": "0.13.6", "license": "MIT", "exports": "./src/mod.ts", "imports": { diff --git a/src/buffer.ts b/src/buffer.ts index c0e564a..d5f7ce3 100644 --- a/src/buffer.ts +++ b/src/buffer.ts @@ -20,6 +20,10 @@ export class Buffer { this.len += text.length; } + get_eol_end(index: number): number | undefined { + return this.eols[index * 2 + 1]; + } + find_eol_index(index: number, a: number): number { let b = this.eols_len - 1; let i = 0; diff --git a/src/text-buf.ts b/src/text-buf.ts index f6e31cd..3d0955e 100644 --- a/src/text-buf.ts +++ b/src/text-buf.ts @@ -439,8 +439,8 @@ export class TextBuf { i += x.left.total_len; if (eol_index < x.eols_len) { - const eol_end = this.#bufs[x.buf]! - .eols[(x.eols_start + eol_index) * 2 + 1]!; + const buf = this.#bufs[x.buf]!; + const eol_end = buf.get_eol_end(x.eols_start + eol_index)!; return i + eol_end - x.slice_start; }