git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@15371 27425a3e-05d8-49a3-a47f-9c15f0e5edd8

This commit is contained in:
Giovanni Di Sirio 2022-01-17 19:32:37 +00:00
parent 0d2a33ce22
commit 8312fe5a73
1 changed files with 15 additions and 17 deletions

View File

@ -128,7 +128,7 @@ static char *fetch_argument(char **pp) {
return ap;
}
static int cmd_env(int argc, char *argv[]) {
static void cmd_env(int argc, char *argv[]) {
extern char **environ;
char **pp;
@ -136,7 +136,7 @@ static int cmd_env(int argc, char *argv[]) {
if (argc != 1) {
shell_usage("env");
return 1;
return;
}
pp = environ;
@ -144,11 +144,9 @@ static int cmd_env(int argc, char *argv[]) {
shell_write(*pp++);
shell_write(SHELL_NEWLINE_STR);
}
return 0;
}
static int cmd_exit(int argc, char *argv[]) {
static void cmd_exit(int argc, char *argv[]) {
msg_t msg;
if (argc == 1) {
@ -159,22 +157,20 @@ static int cmd_exit(int argc, char *argv[]) {
}
else {
shell_usage("exit [n]");
return 1;
return;
}
sbExit(msg);
return 0;
}
static int cmd_path(int argc, char *argv[]) {
static void cmd_path(int argc, char *argv[]) {
char *s;
(void)argv;
if (argc != 1) {
shell_usage("path");
return 1;
return;
}
s = getenv("PATH");
@ -182,16 +178,14 @@ static int cmd_path(int argc, char *argv[]) {
shell_write(s);
shell_write(SHELL_NEWLINE_STR);
}
return 0;
}
static int shell_execute(int argc, char *argv[]) {
static bool shell_execute(int argc, char *argv[]) {
int i;
static const struct {
const char *name;
int (*cmdf)(int argc, char *argv[]);
void (*cmdf)(int argc, char *argv[]);
} builtins[] = {
{"env", cmd_env},
{"exit", cmd_exit},
@ -202,12 +196,13 @@ static int shell_execute(int argc, char *argv[]) {
i = 0;
while (builtins[i].name != NULL) {
if (strcmp(builtins[i].name, argv[0]) == 0) {
return builtins[i].cmdf(argc, argv);
builtins[i].cmdf(argc, argv);
return false;
}
i++;
}
return -1;
return true;
}
/*
@ -262,7 +257,10 @@ int main(int argc, char *argv[], char *envp[]) {
/* Executing command, if any.*/
if (i > 0) {
shell_execute(i, args);
if (shell_execute(i, args)){
shell_error(args[0]);
shell_error("?" SHELL_NEWLINE_STR);
}
}
}
}