mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-14 15:56:13 +03:00
osc: change window title with code 2
This commit is contained in:
@ -98,6 +98,7 @@ pub const Parser = struct {
|
||||
@"11",
|
||||
@"13",
|
||||
@"133",
|
||||
@"2",
|
||||
|
||||
// We're in a semantic prompt OSC command but we aren't sure
|
||||
// what the command is yet, i.e. `133;`
|
||||
@ -138,6 +139,7 @@ pub const Parser = struct {
|
||||
.empty => switch (c) {
|
||||
'0' => self.state = .@"0",
|
||||
'1' => self.state = .@"1",
|
||||
'2' => self.state = .@"2",
|
||||
else => self.state = .invalid,
|
||||
},
|
||||
|
||||
@ -177,6 +179,17 @@ pub const Parser = struct {
|
||||
else => self.state = .invalid,
|
||||
},
|
||||
|
||||
.@"2" => switch (c) {
|
||||
';' => {
|
||||
self.command = .{ .change_window_title = undefined };
|
||||
|
||||
self.state = .string;
|
||||
self.temp_state = .{ .str = &self.command.change_window_title };
|
||||
self.buf_start = self.buf_idx;
|
||||
},
|
||||
else => self.state = .invalid,
|
||||
},
|
||||
|
||||
.semantic_prompt => switch (c) {
|
||||
'A' => {
|
||||
self.state = .semantic_option_start;
|
||||
@ -310,6 +323,19 @@ test "OSC: change_window_title" {
|
||||
try testing.expectEqualStrings("ab", cmd.change_window_title);
|
||||
}
|
||||
|
||||
test "OSC: change_window_title with 2" {
|
||||
const testing = std.testing;
|
||||
|
||||
var p: Parser = .{};
|
||||
p.next('2');
|
||||
p.next(';');
|
||||
p.next('a');
|
||||
p.next('b');
|
||||
const cmd = p.end().?;
|
||||
try testing.expect(cmd == .change_window_title);
|
||||
try testing.expectEqualStrings("ab", cmd.change_window_title);
|
||||
}
|
||||
|
||||
test "OSC: prompt_start" {
|
||||
const testing = std.testing;
|
||||
|
||||
|
Reference in New Issue
Block a user