···4242 else if Sys.file_exists name then [ name ]
4343 else []
44444545- let complete path =
4545+ let complete ~home:_ path =
4646 let rest, last_arg =
4747 String.split_on_char ' ' path |> List.rev |> function
4848 | [] -> ([], `None)
···108108 match Astring.String.cut ~sep:command x with
109109 | Some ("", rest) -> Some (rest, `Fg (`Hi `Magenta))
110110 | _ -> None)
111111+ in
112112+ let complete =
113113+ match S.lookup (Exit.value ctx |> Eval.state) ~param:"HOME" with
114114+ | Some home -> complete ~home
115115+ | None -> complete ~home:(Eunix.find_env "HOME")
111116 in
112117 match
113118 Bruit.bruit ~hint
+2-1
src/lib/posix/exec.ml
···119119 let await t =
120120 match Eio.Promise.await @@ Process.exit_status t with
121121 | Unix.WEXITED i -> `Exited i
122122- | Unix.WSIGNALED i -> `Signaled i
122122+ | Unix.WSIGNALED i -> `Signaled (128 + Sys.signal_to_int i)
123123 | Unix.WSTOPPED _ -> assert false
124124125125 let signal = Process.signal
···261261262262let run ~mode ?delay_reap _ ?stdin ?stdout ?stderr ?(fds = [])
263263 ?(fork_actions = []) ~pgid ~cwd ~pipe ?env ?executable args =
264264+ Sys.set_signal Sys.sigint Sys.Signal_default;
264265 with_close_list @@ fun to_close ->
265266 let check_fd n = function
266267 | Merry.Types.Parent_redirect (m, _, _) -> Int.equal n m