1
1

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.
Этот коммит содержится в:
Yorhel 2014-12-14 15:13:38 +01:00
родитель a25e5f80a5
Коммит 777db9a5df
3 изменённых файлов: 4 добавлений и 3 удалений

Просмотреть файл

@ -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"