Minor fixes to new shell feature
The check for the system() exit status is slightly problematic, because bash returns the status code of the last command it executed. I've set it to only check for status code 127 now (command not found) in order to at least provide a message when the $SHELL command can't be found. This error can still be triggered when executing a nonexistant command within the shell and then exiting.
Этот коммит содержится в:
родитель
a25e5f80a5
Коммит
777db9a5df
@ -103,5 +103,6 @@ int input_handle(int);
|
||||
#include "help.h"
|
||||
#include "path.h"
|
||||
#include "util.h"
|
||||
#include "shell.h"
|
||||
|
||||
#endif
|
||||
|
@ -32,7 +32,7 @@
|
||||
int page, start;
|
||||
|
||||
|
||||
#define KEYS 16
|
||||
#define KEYS 17
|
||||
char *keys[KEYS*2] = {
|
||||
/*|----key----| |----------------description----------------|*/
|
||||
"up, k", "Move cursor up",
|
||||
|
@ -34,7 +34,7 @@
|
||||
#include <unistd.h>
|
||||
|
||||
void shell_draw() {
|
||||
char *full_path, *shell;
|
||||
char *full_path;
|
||||
int res;
|
||||
|
||||
/* suspend ncurses mode */
|
||||
@ -60,7 +60,7 @@ void shell_draw() {
|
||||
/* resume ncurses mode */
|
||||
reset_prog_mode();
|
||||
|
||||
if (res == -1 || WEXITSTATUS(res) != 0) {
|
||||
if (res == -1 || !WIFEXITED(res) || WEXITSTATUS(res) == 127) {
|
||||
clear();
|
||||
printw("ERROR: Can't execute shell interpreter: %s\n"
|
||||
"\n"
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user