aboutsummaryrefslogtreecommitdiff
path: root/vendor/libghostty-vt/src/terminal/osc.zig
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-07-16 23:28:05 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-07-16 23:29:28 +0300
commit4a3302d19a2baa3a33e910e0088c24e780905b90 (patch)
treedcaf76fae1c82102d933c9225b17ca7ac5d3a847 /vendor/libghostty-vt/src/terminal/osc.zig
parent550e9f8cc085f428429f5cf2da0bb2dba897e8b8 (diff)
chore: update vendored libghostty-vt
refs #276
Diffstat (limited to 'vendor/libghostty-vt/src/terminal/osc.zig')
-rw-r--r--vendor/libghostty-vt/src/terminal/osc.zig20
1 files changed, 19 insertions, 1 deletions
diff --git a/vendor/libghostty-vt/src/terminal/osc.zig b/vendor/libghostty-vt/src/terminal/osc.zig
index 36cfd7f8..26ce1267 100644
--- a/vendor/libghostty-vt/src/terminal/osc.zig
+++ b/vendor/libghostty-vt/src/terminal/osc.zig
@@ -156,6 +156,9 @@ pub const Command = union(Key) {
kitty_clipboard_protocol: KittyClipboardProtocol,
+ /// Kitty drag and drop protocol (OSC 72)
+ kitty_dnd_protocol: KittyDndProtocol,
+
/// OSC 3008. Hierarchical context signalling (UAPI spec).
/// https://uapi-group.org/specifications/specs/osc_context/
context_signal: parsers.context_signal.Command,
@@ -164,6 +167,8 @@ pub const Command = union(Key) {
pub const KittyClipboardProtocol = parsers.kitty_clipboard_protocol.OSC;
+ pub const KittyDndProtocol = parsers.kitty_dnd_protocol.OSC;
+
pub const Key = LibEnum(
lib.target,
// NOTE: Order matters, see LibEnum documentation.
@@ -192,6 +197,7 @@ pub const Command = union(Key) {
"conemu_comment",
"kitty_text_sizing",
"kitty_clipboard_protocol",
+ "kitty_dnd_protocol",
"context_signal",
},
);
@@ -344,6 +350,7 @@ pub const Parser = struct {
@"52",
@"55",
@"66",
+ @"72",
@"77",
@"104",
@"110",
@@ -398,10 +405,12 @@ pub const Parser = struct {
.kitty_color_protocol => |*v| kitty_color_protocol: {
v.deinit(self.alloc orelse break :kitty_color_protocol);
},
+ .color_operation => |*v| color_operation: {
+ v.requests.deinit(self.alloc orelse break :color_operation);
+ },
.change_window_icon,
.change_window_title,
.clipboard_contents,
- .color_operation,
.conemu_change_tab_title,
.conemu_comment,
.conemu_guimacro,
@@ -421,6 +430,7 @@ pub const Parser = struct {
.show_desktop_notification,
.kitty_text_sizing,
.kitty_clipboard_protocol,
+ .kitty_dnd_protocol,
.context_signal,
=> {},
}
@@ -691,10 +701,16 @@ pub const Parser = struct {
.@"7" => switch (c) {
';' => self.captureTrailing(.fixed),
+ '2' => self.state = .@"72",
'7' => self.state = .@"77",
else => self.state = .invalid,
},
+ .@"72" => switch (c) {
+ ';' => self.captureTrailing(.allocating),
+ else => self.state = .invalid,
+ },
+
.@"77" => switch (c) {
'7' => self.state = .@"777",
else => self.state = .invalid,
@@ -805,6 +821,8 @@ pub const Parser = struct {
.@"66" => parsers.kitty_text_sizing.parse(self, terminator_ch),
+ .@"72" => parsers.kitty_dnd_protocol.parse(self, terminator_ch),
+
.@"77" => null,
.@"133" => parsers.semantic_prompt.parse(self, terminator_ch),