From 853c0427e6f8c9e75de6266276d8bdf48ed93825 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Thu, 12 Oct 2023 19:38:06 -0700 Subject: [PATCH] website: document srm mode --- src/terminal/modes.zig | 4 +++- website/app/vt/modes/srm/page.mdx | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 website/app/vt/modes/srm/page.mdx diff --git a/src/terminal/modes.zig b/src/terminal/modes.zig index 8c49941ba..0e70dd53c 100644 --- a/src/terminal/modes.zig +++ b/src/terminal/modes.zig @@ -147,6 +147,7 @@ pub fn modeFromInt(v: u16, ansi: bool) ?Mode { } fn entryForMode(comptime mode: Mode) ModeEntry { + @setEvalBranchQuota(10_000); const name = @tagName(mode); for (entries) |entry| { if (std.mem.eql(u8, entry.name, name)) return entry; @@ -172,6 +173,7 @@ const entries: []const ModeEntry = &.{ // ANSI .{ .name = "disable_keyboard", .value = 2, .ansi = true }, // KAM .{ .name = "insert", .value = 4, .ansi = true }, + .{ .name = "send_receive_mode", .value = 12, .ansi = true, .default = true }, // SRM // DEC .{ .name = "cursor_keys", .value = 1 }, // DECCKM @@ -213,7 +215,7 @@ test modeFromInt { try testing.expect(modeFromInt(4, true).? == .insert); try testing.expect(modeFromInt(9, true) == null); try testing.expect(modeFromInt(9, false).? == .mouse_event_x10); - try testing.expect(modeFromInt(12, true) == null); + try testing.expect(modeFromInt(14, true) == null); } test ModeState { diff --git a/website/app/vt/modes/srm/page.mdx b/website/app/vt/modes/srm/page.mdx new file mode 100644 index 000000000..8b2e56649 --- /dev/null +++ b/website/app/vt/modes/srm/page.mdx @@ -0,0 +1,17 @@ +import VTMode from "@/components/VTMode"; + +# Send-Receive Mode (SRM) + + + +If reset, characters entered by the keyboard are shown on the screen +as well as being sent to the running program. If set, keyboard input +is sent only to the running program and the running program can choose +whether it wants to echo it back. + +This mode is typically enabled on terminal startup. + +This mode is generally unsupported across most terminals today and +is recommended to be retired.[^1] + +[^1]: https://gitlab.gnome.org/GNOME/vte/-/issues/69