|
|
|
@ -222,13 +222,12 @@ int _do_env_set (int flag, int argc, char * const argv[]) |
|
|
|
|
hsearch_r(e, FIND, &ep, &env_htab); |
|
|
|
|
|
|
|
|
|
/* Check for console redirection */ |
|
|
|
|
if (strcmp(name,"stdin") == 0) { |
|
|
|
|
if (strcmp(name, "stdin") == 0) |
|
|
|
|
console = stdin; |
|
|
|
|
} else if (strcmp(name,"stdout") == 0) { |
|
|
|
|
else if (strcmp(name, "stdout") == 0) |
|
|
|
|
console = stdout; |
|
|
|
|
} else if (strcmp(name,"stderr") == 0) { |
|
|
|
|
else if (strcmp(name, "stderr") == 0) |
|
|
|
|
console = stderr; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (console != -1) { |
|
|
|
|
if (argc < 3) { /* Cannot delete it! */ |
|
|
|
@ -309,10 +308,11 @@ int _do_env_set (int flag, int argc, char * const argv[]) |
|
|
|
|
/*
|
|
|
|
|
* Insert / replace new value |
|
|
|
|
*/ |
|
|
|
|
for (i=2,len=0; i<argc; ++i) { |
|
|
|
|
for (i = 2, len = 0; i < argc; ++i) |
|
|
|
|
len += strlen(argv[i]) + 1; |
|
|
|
|
} |
|
|
|
|
if ((value = malloc(len)) == NULL) { |
|
|
|
|
|
|
|
|
|
value = malloc(len); |
|
|
|
|
if (value == NULL) { |
|
|
|
|
printf("## Can't malloc %d bytes\n", len); |
|
|
|
|
return 1; |
|
|
|
|
} |
|
|
|
@ -417,9 +417,9 @@ int do_env_ask ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) |
|
|
|
|
|
|
|
|
|
default: /* env_ask envname message1 ... messagen size */ |
|
|
|
|
for (i = 2, pos = 0; i < argc - 1; i++) { |
|
|
|
|
if (pos) { |
|
|
|
|
if (pos) |
|
|
|
|
message[pos++] = ' '; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
strcpy(message+pos, argv[i]); |
|
|
|
|
pos += strlen(argv[i]); |
|
|
|
|
} |
|
|
|
@ -493,7 +493,7 @@ char *getenv (char *name) |
|
|
|
|
e.data = NULL; |
|
|
|
|
hsearch_r(e, FIND, &ep, &env_htab); |
|
|
|
|
|
|
|
|
|
return (ep ? ep->data : NULL); |
|
|
|
|
return ep ? ep->data : NULL; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* restricted capabilities before import */ |
|
|
|
@ -515,11 +515,12 @@ int getenv_f (char *name, char *buf, unsigned len) |
|
|
|
|
int val, n; |
|
|
|
|
|
|
|
|
|
for (nxt = i; env_get_char(nxt) != '\0'; ++nxt) { |
|
|
|
|
if (nxt >= CONFIG_ENV_SIZE) { |
|
|
|
|
return (-1); |
|
|
|
|
} |
|
|
|
|
if (nxt >= CONFIG_ENV_SIZE) |
|
|
|
|
return -1; |
|
|
|
|
} |
|
|
|
|
if ((val=envmatch((uchar *)name, i)) < 0) |
|
|
|
|
|
|
|
|
|
val = envmatch((uchar *)name, i); |
|
|
|
|
if (val < 0) |
|
|
|
|
continue; |
|
|
|
|
|
|
|
|
|
/* found; copy out */ |
|
|
|
@ -535,7 +536,7 @@ int getenv_f (char *name, char *buf, unsigned len) |
|
|
|
|
|
|
|
|
|
return n; |
|
|
|
|
} |
|
|
|
|
return (-1); |
|
|
|
|
return -1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#if defined(CONFIG_CMD_SAVEENV) && !defined(CONFIG_ENV_IS_NOWHERE) |
|
|
|
@ -546,7 +547,7 @@ int do_env_save (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) |
|
|
|
|
|
|
|
|
|
printf("Saving Environment to %s...\n", env_name_spec); |
|
|
|
|
|
|
|
|
|
return (saveenv() ? 1 : 0); |
|
|
|
|
return saveenv() ? 1 : 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
U_BOOT_CMD( |
|
|
|
@ -568,20 +569,19 @@ U_BOOT_CMD( |
|
|
|
|
|
|
|
|
|
int envmatch(uchar *s1, int i2) |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
while (*s1 == env_get_char(i2++)) |
|
|
|
|
if (*s1++ == '=') |
|
|
|
|
return(i2); |
|
|
|
|
return i2; |
|
|
|
|
if (*s1 == '\0' && env_get_char(i2-1) == '=') |
|
|
|
|
return(i2); |
|
|
|
|
return(-1); |
|
|
|
|
return i2; |
|
|
|
|
return -1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static int do_env_default(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) |
|
|
|
|
{ |
|
|
|
|
if ((argc != 2) || (strcmp(argv[1], "-f") != 0)) { |
|
|
|
|
if ((argc != 2) || (strcmp(argv[1], "-f") != 0)) |
|
|
|
|
return cmd_usage(cmdtp); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
set_default_env("## Resetting to default environment\n"); |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
@ -673,9 +673,8 @@ static int do_env_export(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (argc < 1) { |
|
|
|
|
if (argc < 1) |
|
|
|
|
return cmd_usage(cmdtp); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
addr = (char *)simple_strtoul(argv[0], NULL, 16); |
|
|
|
|
|
|
|
|
@ -784,9 +783,8 @@ static int do_env_import(cmd_tbl_t * cmdtp, int flag, int argc, char * const arg |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (argc < 1) { |
|
|
|
|
if (argc < 1) |
|
|
|
|
return cmd_usage(cmdtp); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!fmt) |
|
|
|
|
printf("## Warning: defaulting to text format\n"); |
|
|
|
|