diff options
Diffstat (limited to 'tools/env/fw_env.c')
-rw-r--r-- | tools/env/fw_env.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/tools/env/fw_env.c b/tools/env/fw_env.c index e083a5b11eb..b8bca91c38d 100644 --- a/tools/env/fw_env.c +++ b/tools/env/fw_env.c @@ -1,5 +1,5 @@ /* - * (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 @@ -209,13 +209,14 @@ char *fw_getenv (char *name) * 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) { @@ -223,13 +224,13 @@ void fw_printenv (int argc, char *argv[]) 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) { @@ -239,7 +240,7 @@ void fw_printenv (int argc, char *argv[]) if (argc != 2) { fprintf (stderr, "## Error: " "`-n' option requires exactly one argument\n"); - return; + return (-1); } } else { n_flag = 0; @@ -255,7 +256,7 @@ void fw_printenv (int argc, char *argv[]) if (nxt >= &environment.data[ENV_SIZE]) { fprintf (stderr, "## Error: " "environment not terminated\n"); - return; + return (-1); } } val = envmatch (name, env); @@ -268,9 +269,13 @@ void fw_printenv (int argc, char *argv[]) break; } } - if (!val) + if (!val) { fprintf (stderr, "## Error: \"%s\" not defined\n", name); + rc = -1; + } } + + return (rc); } /* |