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); }
|
void msh_write(char *st, SIZE_TYPE size) { SYSCALL(write, 1, st, size); }
|
||||||
|
|
||||||
int msh_execute(char *cmd, char **args) {
|
int msh_execute(char *cmd, char **args) {
|
||||||
|
SIZE_TYPE fork;
|
||||||
|
|
||||||
if (*cmd == '\0') {
|
if (*cmd == '\0') {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
SIZE_TYPE fork = (SIZE_TYPE)SYSCALL(fork, 0);
|
fork = (SIZE_TYPE)SYSCALL(fork, 0);
|
||||||
|
|
||||||
if (fork == 0) {
|
if (fork == 0) {
|
||||||
char **env_translated = 0;
|
char **env_translated = 0;
|
||||||
|
|
@ -88,6 +90,7 @@ int msh_execute(char *cmd, char **args) {
|
||||||
|
|
||||||
env_translated[i++] = 0;
|
env_translated[i++] = 0;
|
||||||
|
|
||||||
|
msh_linux_end_input_capture();
|
||||||
ret = (int)SYSCALL(execve, cmd, args, env_translated);
|
ret = (int)SYSCALL(execve, cmd, args, env_translated);
|
||||||
|
|
||||||
for (n = 0; n < i; n++) {
|
for (n = 0; n < i; n++) {
|
||||||
|
|
@ -106,6 +109,7 @@ int msh_execute(char *cmd, char **args) {
|
||||||
SYSCALL(kill, fork, SIGKILL);
|
SYSCALL(kill, fork, SIGKILL);
|
||||||
|
|
||||||
SYSCALL(write, 1, "\r", 2);
|
SYSCALL(write, 1, "\r", 2);
|
||||||
|
msh_linux_start_input_capture();
|
||||||
|
|
||||||
return info.si_code;
|
return info.si_code;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue