start/end input capture more appropriately so that launched applications don't default to raw mode
This commit is contained in:
parent
a95a483710
commit
e7a7447550
1 changed files with 5 additions and 1 deletions
|
|
@ -57,10 +57,12 @@ int msh_read_input(char *ptr, SIZE_TYPE *size, SIZE_TYPE n) {
|
|||
void msh_write(char *st, SIZE_TYPE size) { SYSCALL(write, 1, st, size); }
|
||||
|
||||
int msh_execute(char *cmd, char **args) {
|
||||
SIZE_TYPE fork;
|
||||
|
||||
if (*cmd == '\0') {
|
||||
return 0;
|
||||
}
|
||||
SIZE_TYPE fork = (SIZE_TYPE)SYSCALL(fork, 0);
|
||||
fork = (SIZE_TYPE)SYSCALL(fork, 0);
|
||||
|
||||
if (fork == 0) {
|
||||
char **env_translated = 0;
|
||||
|
|
@ -88,6 +90,7 @@ int msh_execute(char *cmd, char **args) {
|
|||
|
||||
env_translated[i++] = 0;
|
||||
|
||||
msh_linux_end_input_capture();
|
||||
ret = (int)SYSCALL(execve, cmd, args, env_translated);
|
||||
|
||||
for (n = 0; n < i; n++) {
|
||||
|
|
@ -106,6 +109,7 @@ int msh_execute(char *cmd, char **args) {
|
|||
SYSCALL(kill, fork, SIGKILL);
|
||||
|
||||
SYSCALL(write, 1, "\r", 2);
|
||||
msh_linux_start_input_capture();
|
||||
|
||||
return info.si_code;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue