diff options
| author | Gabriel Schneider <[email protected]> | 2026-09-29 07:24:46 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-10-01 00:12:16 -0300 |
| commit | b3557640d6a0a4c2c41b6e1cae3c8182a32937ca (patch) | |
| tree | 1d242911a8ff7c9ba4fb8b42c30b183a0e5878b4 /src/pardes.zig | |
| parent | a63185292e80beac3848f4f6395c61d941f5144f (diff) | |
| download | pardes-b3557640d6a0a4c2c41b6e1cae3c8182a32937ca.tar.gz pardes-b3557640d6a0a4c2c41b6e1cae3c8182a32937ca.zip | |
New from a column's exec makes its scratch in the session's directory, as tagexec's does
A word run from a header runs in the session's directory (execDir), but
New named its scratch after the pane with the keyboard.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/pardes.zig')
| -rw-r--r-- | src/pardes.zig | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/pardes.zig b/src/pardes.zig index 739d5bf2..52d11bec 100644 --- a/src/pardes.zig +++ b/src/pardes.zig @@ -4852,11 +4852,13 @@ pub const Pardes = struct { errdefer p.gpa.free(content); // A terminal that has not said where it is yet (the boot layout's) // has no directory: the scratch is the session's, <cwd>/+New. So is - // 9P's pane/new: no pane asked for it, whichever last had the - // keyboard (acme's new window has acme's directory). - const dir = if (kind == .fs) "" else paneDir(src); + // 9P's pane/new, and a New from a column's or the workspace's tag: + // no pane asked for it, whichever last had the keyboard (acme's new + // window has acme's directory). + const own = kind != .fs and !p.exec_header; + const dir = if (own) paneDir(src) else ""; const np = try panes.Output.open(p, free, if (dir.len == 0) p.sessionDir() else dir, .{ .cmd = .New }, "", content); - if (kind != .fs) np.cwd = .{ .inherited = src }; + if (own) np.cwd = .{ .inherited = src }; np.body.cur_pinned = true; return np; } |
