CE change environment variables syntax, sdutil Add help command
This commit is contained in:
18
ce/interp.c
18
ce/interp.c
@@ -424,20 +424,24 @@ static void execute_cmd (struct ast_cmd* cmd, struct context* context) {
|
|||||||
|
|
||||||
int pgid = get_procgroup (pid);
|
int pgid = get_procgroup (pid);
|
||||||
|
|
||||||
for (int i = 0; i < cmd->arg_count; i++) {
|
int i = 0;
|
||||||
|
while (i < cmd->arg_count) {
|
||||||
char* arg = cmd->args[i];
|
char* arg = cmd->args[i];
|
||||||
char *key, *value;
|
char *key, *value;
|
||||||
|
|
||||||
char* sep = strchr (arg, '=');
|
if (arg[0] == '-') {
|
||||||
|
key = &arg[1];
|
||||||
|
|
||||||
if (sep != NULL) {
|
if (i < cmd->arg_count - 1) {
|
||||||
*sep = '\0';
|
value = cmd->args[++i];
|
||||||
|
} else {
|
||||||
key = arg;
|
value = "yes";
|
||||||
value = sep + 1;
|
}
|
||||||
|
|
||||||
env_set (pgid, key, value, strlen (value) + 1);
|
env_set (pgid, key, value, strlen (value) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct cmd_write_proc_ctx wpctx = {.pgid = pgid, .cancel_pid = pid};
|
struct cmd_write_proc_ctx wpctx = {.pgid = pgid, .cancel_pid = pid};
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
|
|
||||||
#include <list.h>
|
#include <list.h>
|
||||||
|
|
||||||
#define TOKEN_MAX 64
|
#define TOKEN_MAX 128
|
||||||
#define CMD_ARGS_MAX 64
|
#define CMD_ARGS_MAX 128
|
||||||
|
|
||||||
#define TOKEN_CLASS_OPAREN 0
|
#define TOKEN_CLASS_OPAREN 0
|
||||||
#define TOKEN_CLASS_CPAREN 1
|
#define TOKEN_CLASS_CPAREN 1
|
||||||
|
|||||||
@@ -182,6 +182,12 @@ void app_main (void) {
|
|||||||
char devnamebuf[64];
|
char devnamebuf[64];
|
||||||
memset (devnamebuf, 0, sizeof (devnamebuf));
|
memset (devnamebuf, 0, sizeof (devnamebuf));
|
||||||
|
|
||||||
|
if (env_get (process_get_pgid (), "help", (void*)commandbuf, sizeof (commandbuf)) == ST_OK) {
|
||||||
|
mprintf ("sdutil -C command -dev device_key\n");
|
||||||
|
mprintf ("commands: part_dos, list_part_dos, format_fat32, format_fat16\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (env_get (process_get_pgid (), "C", (void*)commandbuf, sizeof (commandbuf)) != ST_OK) {
|
if (env_get (process_get_pgid (), "C", (void*)commandbuf, sizeof (commandbuf)) != ST_OK) {
|
||||||
mprintf ("ERROR C=???. No command provided\n");
|
mprintf ("ERROR C=???. No command provided\n");
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user