From b666f96e734bb87d6558c76c908314da562122d5 Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Thu, 1 Oct 2026 05:15:35 -0300 Subject: A Restore whose ThemeFile fails to load changes no theme: the session goes on showing the one it did, its file still the one named A Restore makes a fresh core, which started at the default theme and asked for the dump's ThemeFile; when that file had broken since, the failure reverted to what the fresh core had loaded, nothing, and ink became orchard. A Restore that asks for a ThemeFile now carries over the theme the old session showed and the file it loaded (and its Theme, unless the dump names one), so a failure there changes nothing. Co-Authored-By: Claude Opus 5.5 --- src/ninep/ctl.zig | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/ninep/ctl.zig') diff --git a/src/ninep/ctl.zig b/src/ninep/ctl.zig index b7c529e1..a5a36464 100644 --- a/src/ninep/ctl.zig +++ b/src/ninep/ctl.zig @@ -2102,6 +2102,12 @@ test "a Restore asks again for the ThemeFile the dump names, as a /ctl write of else => {}, } else return error.NoThemeFileAsked; try testing.expectEqualStrings(good, pardes.colors.themeFileRequest(restored, asked.generation).?.path); + // The file broken since, the load fails: the restored session still + // shows the theme the old one did, and names the file it loaded. + try testing.expectEqualStrings("restored", restored.theme().name); + pardes.colors.failThemeFile(restored, asked.generation, error.ParseZon); + try testing.expectEqualStrings("restored", restored.theme().name); + try testing.expectEqualStrings(good, restored.theme_file_path.get()); } test "a ThemeFile that fails to load changes nothing: the root ctl still names the one loaded, or none" { -- cgit v1.3