summaryrefslogtreecommitdiff
path: root/src/exec.zig
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-30 11:44:27 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:17 -0300
commitf7c22573915cd4ecb98ef400b0914949ed07874e (patch)
tree125f30f2338dc04d73b7b309b6a6c834927f4f9f /src/exec.zig
parente61cc19e5d60403f721338f61e62a2e5569c9846 (diff)
downloadpardes-f7c22573915cd4ecb98ef400b0914949ed07874e.tar.gz
pardes-f7c22573915cd4ecb98ef400b0914949ed07874e.zip
New and Tty run at /tagexec and a column's exec, and with no pane at all
The words New and Tty make a pane in the session's directory, and fs.md already has them run at a tag no pane owns. But /tagexec refused New as a pane's word, since the workspace tag does not hold it. Every header exec also failed ENOENT when no pane was left, and Tty gave up when it had no pane to take a directory from. Now New and Tty are every tag's words. A header exec with no pane runs at the stand-in, as a click in the empty window's tag does, and Tty with no pane asking starts in the session's directory, as New's scratch does. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/exec.zig')
-rw-r--r--src/exec.zig3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/exec.zig b/src/exec.zig
index 8c062f66..5b0b0250 100644
--- a/src/exec.zig
+++ b/src/exec.zig
@@ -346,7 +346,8 @@ pub fn spawnV9fsTty(p: *Pardes, from: usize) void {
}
fn spawnTtyWithMount(p: *Pardes, from: usize, v9fs: bool) ?*Pane {
- if (p.panes[from] == null) return null;
+ // No pane asking (an empty window's tag): the session's directory, as
+ // New's scratch is.
// A directory that is not there makes no terminal: its shell could not
// start in it, and a dead pane would answer no run. Asked only of a host
// that starts shells (none, as in the core's tests, starts none).