fix: move keybind command arguments to stack before executing

This avoids problems with commands that cause the current mode to be
deleted before the arguments are read such as `enter_mode`.
This commit is contained in:
CJ van den Berg 2024-11-20 19:45:00 +01:00
parent fdf0c7ada9
commit 386453ee61
Signed by: neurocyte
GPG key ID: 8EB1E1BB660E3FB9
2 changed files with 7 additions and 5 deletions

View file

@ -119,7 +119,9 @@ const Binding = struct {
command.get_id_cache(self.command, &self.command_id) orelse {
return tp.exit_fmt("CommandNotFound: {s}", .{self.command});
};
try command.execute(id, .{ .args = .{ .buf = self.args } });
var buf: [2048]u8 = undefined;
@memcpy(buf[0..self.args.len], self.args);
try command.execute(id, .{ .args = .{ .buf = buf[0..self.args.len] } });
}
const MatchResult = enum { match_impossible, match_possible, matched };