summaryrefslogtreecommitdiffhomepage
path: root/patches/[email protected]
diff options
context:
space:
mode:
authorAdam <[email protected]>2025-12-06 06:16:21 -0600
committerAdam <[email protected]>2025-12-06 06:43:53 -0600
commit91110051658f42341ac713327991605461d4bb0b (patch)
treee415be079c7b38647c6797b433b91fc4e7e8d6aa /patches/[email protected]
parent3ceac25fb54d1607c77de4cc861c394e3abd14f0 (diff)
downloadopencode-91110051658f42341ac713327991605461d4bb0b.tar.gz
opencode-91110051658f42341ac713327991605461d4bb0b.zip
fix: terminal serialization and isolation
Diffstat (limited to 'patches/[email protected]')
-rw-r--r--patches/[email protected]40
1 files changed, 40 insertions, 0 deletions
diff --git a/patches/[email protected] b/patches/[email protected]
new file mode 100644
index 000000000..d63a693b8
--- /dev/null
+++ b/patches/[email protected]
@@ -0,0 +1,40 @@
+diff --git a/dist/ghostty-web.js b/dist/ghostty-web.js
+index 7c9d64a617bbeb29d757a1acd54686e582868313..2d61098cdb77fa66cbb162897c5590f35cfcf791 100644
+--- a/dist/ghostty-web.js
++++ b/dist/ghostty-web.js
+@@ -1285,7 +1285,7 @@ const e = class H {
+ continue;
+ }
+ const C = g.getCodepoint();
+- C === 0 || C < 32 ? B.push(" ") : B.push(String.fromCodePoint(C));
++ C === 0 || C < 32 || C > 1114111 || (C >= 55296 && C <= 57343) ? B.push(" ") : B.push(String.fromCodePoint(C));
+ }
+ return B.join("");
+ }
+@@ -1484,7 +1484,7 @@ class _ {
+ return;
+ let J = "";
+ A.flags & U.ITALIC && (J += "italic "), A.flags & U.BOLD && (J += "bold "), this.ctx.font = `${J}${this.fontSize}px ${this.fontFamily}`, this.ctx.fillStyle = this.rgbToCSS(w, o, i), A.flags & U.FAINT && (this.ctx.globalAlpha = 0.5);
+- const s = g, F = C + this.metrics.baseline, a = String.fromCodePoint(A.codepoint || 32);
++ const s = g, F = C + this.metrics.baseline, a = (A.codepoint === 0 || A.codepoint == null || A.codepoint < 0 || A.codepoint > 1114111 || (A.codepoint >= 55296 && A.codepoint <= 57343)) ? " " : String.fromCodePoint(A.codepoint);
+ if (this.ctx.fillText(a, s, F), A.flags & U.FAINT && (this.ctx.globalAlpha = 1), A.flags & U.UNDERLINE) {
+ const N = C + this.metrics.baseline + 2;
+ this.ctx.strokeStyle = this.ctx.fillStyle, this.ctx.lineWidth = 1, this.ctx.beginPath(), this.ctx.moveTo(g, N), this.ctx.lineTo(g + I, N), this.ctx.stroke();
+@@ -1730,7 +1730,7 @@ const L = class R {
+ let G = "";
+ for (let J = M; J <= k; J++) {
+ const s = o[J];
+- if (s && s.codepoint !== 0) {
++ if (s && s.codepoint !== 0 && s.codepoint <= 1114111 && !(s.codepoint >= 55296 && s.codepoint <= 57343)) {
+ const F = String.fromCodePoint(s.codepoint);
+ G += F, F.trim() && (i = G.length);
+ } else
+@@ -1995,7 +1995,7 @@ const L = class R {
+ if (!Q)
+ return null;
+ const g = (w) => {
+- if (!w || w.codepoint === 0)
++ if (!w || w.codepoint === 0 || w.codepoint > 1114111 || (w.codepoint >= 55296 && w.codepoint <= 57343))
+ return !1;
+ const o = String.fromCodePoint(w.codepoint);
+ return /[\w-]/.test(o);