/*
- * (C) Copyright 2000-2003
+ * (C) Copyright 2000-2008
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*
* See file CREDITS for list of people who contributed to this
* Print the current definition of one, or more, or all
* environment variables
*/
-void fw_printenv (int argc, char *argv[])
+int fw_printenv (int argc, char *argv[])
{
char *env, *nxt;
int i, n_flag;
+ int rc = 0;
if (env_init ())
- return;
+ return (-1);
if (argc == 1) { /* Print all env variables */
for (env = environment.data; *env; env = nxt + 1) {
if (nxt >= &environment.data[ENV_SIZE]) {
fprintf (stderr, "## Error: "
"environment not terminated\n");
- return;
+ return (-1);
}
}
printf ("%s\n", env);
}
- return;
+ return (0);
}
if (strcmp (argv[1], "-n") == 0) {
if (argc != 2) {
fprintf (stderr, "## Error: "
"`-n' option requires exactly one argument\n");
- return;
+ return (-1);
}
} else {
n_flag = 0;
if (nxt >= &environment.data[ENV_SIZE]) {
fprintf (stderr, "## Error: "
"environment not terminated\n");
- return;
+ return (-1);
}
}
val = envmatch (name, env);
break;
}
}
- if (!val)
+ if (!val) {
fprintf (stderr, "## Error: \"%s\" not defined\n", name);
+ rc = -1;
+ }
}
+
+ return (rc);
}
/*
/*
- * (C) Copyright 2002
+ * (C) Copyright 2002-2008
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*
* See file CREDITS for list of people who contributed to this
"ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off; " \
"bootm"
-extern void fw_printenv(int argc, char *argv[]);
+extern int fw_printenv(int argc, char *argv[]);
extern char *fw_getenv (char *name);
extern int fw_setenv (int argc, char *argv[]);
/*
- * (C) Copyright 2000
+ * (C) Copyright 2000-2008
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*
* See file CREDITS for list of people who contributed to this
* Command line user interface to firmware (=U-Boot) environment.
*
* Implements:
- * fw_printenv [ name ... ]
- * - prints the values of the environment variables
- * "name", or the whole environment if no names are
- * specified
+ * fw_printenv [[ -n name ] | [ name ... ]]
+ * - prints the value of a single environment variable
+ * "name", the ``name=value'' pairs of one or more
+ * environment variables "name", or the whole
+ * environment if no names are specified.
* fw_setenv name [ value ... ]
* - If a name without any values is given, the variable
* with this name is deleted from the environment;
* otherwise, all "value" arguments are concatenated,
- * separated by sinlge blank characters, and the
+ * separated by single blank characters, and the
* resulting string is assigned to the environment
* variable "name"
*/
if (strcmp(cmdname, CMD_PRINTENV) == 0) {
- fw_printenv (argc, argv);
+ if (fw_printenv (argc, argv) != 0)
+ return (EXIT_FAILURE);
- return (EXIT_SUCCESS);
+ return (EXIT_SUCCESS);
} else if (strcmp(cmdname, CMD_SETENV) == 0) {
- if (fw_setenv (argc, argv) != 0)
- return (EXIT_FAILURE);
+ if (fw_setenv (argc, argv) != 0)
+ return (EXIT_FAILURE);
+
+ return (EXIT_SUCCESS);
- return (EXIT_SUCCESS);
}
fprintf (stderr,