From 7aa057e29b729ad6d9ac53e3a06f99858fc449e4 Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Tue, 29 Sep 2026 00:50:45 -0300 Subject: A column has a ctl, an exec and an rmdir over 9P, and Restore maps its serial A script could read and write a column's tag but not act on the column. col//ctl takes Delcol, Joincol, New and Tty, each acting on that column as from its tag; col//exec runs a word as a middle click in the tag; rmdir col/ closes an empty column and refuses one with panes (ENOTEMPTY, an err record saying why). The root ctl's refusal of Delcol and Joincol points at col//ctl. A dump keeps each column's serial and Restore logs restoredcol ; the dump golden gains them. Documented: Joincol's survivor, the column on the right, keeps its serial and tag. Co-Authored-By: Claude Opus 5.5 --- test/fs.py | 2 +- test/snapshots/dump.golden | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'test') diff --git a/test/fs.py b/test/fs.py index 81989f88..fcf23487 100644 --- a/test/fs.py +++ b/test/fs.py @@ -728,7 +728,7 @@ def test(binary, quic=False): log = restored.read('/log') assert b'\nrestore ' + str(saved).encode() + b'\n' in log, log # then which serial each pane had: restored - assert log.endswith(b'\n'.join(b'restored %d %d' % (old, new) for old, new in zip(sorted(old_ids), sorted(int(r.split()[0]) for r in restored.read('/index').splitlines()))) + b'\n'), log + assert (b'\n'.join(b'restored %d %d' % (old, new) for old, new in zip(sorted(old_ids), sorted(int(r.split()[0]) for r in restored.read('/index').splitlines()))) + b'\nrestoredcol ') in log, log restored_ids = [int(row.split()[0]) for row in restored.read('/index').splitlines()] assert len(restored_ids) == 2 and old_ids.isdisjoint(restored_ids), restored_ids file_id, control_id = restored_ids diff --git a/test/snapshots/dump.golden b/test/snapshots/dump.golden index 277d3d34..9220c450 100644 --- a/test/snapshots/dump.golden +++ b/test/snapshots/dump.golden @@ -15,10 +15,12 @@ }, .tree_context_tag_style = true, .columns = .{ .{ + .serial = 1, .tag = null, .weight = 1, .panes = .{ 0, 1 }, }, .{ + .serial = 2, .tag = null, .weight = 1, .panes = .{2}, -- cgit v1.3