--- embedtools/src/ube.c 2014/01/28 22:07:45 1.1.2.5 +++ embedtools/src/ube.c 2014/01/29 01:26:28 1.1.2.9 @@ -29,7 +29,7 @@ main(int argc, char **argv) char ch, mode = 0, szName[STRSIZ] = { 0 }, szVal[STRSIZ] = { 0 }, szCfgName[PATH_MAX], szSec[STRSIZ]; const char *str; - int ret; + int ret = 0; strlcpy(szCfgName, UBE_CFGNAME, sizeof szCfgName); strlcpy(szSec, UBE_SECTION, sizeof szSec); @@ -72,35 +72,43 @@ main(int argc, char **argv) return 1; } + if (ub_load(szSec)) { + ret = 1; + goto end; + } + if (!(mode & 0x7f)) { VERB(2) printf("u-boot-env: list variables\n"); + ub_env(szSec); } if ((mode & 0x7f) & 1) { VERB(2) printf("u-boot-env: get variable %s\n", szName); - str = ub_getenv(szName); + str = ub_getenv(szSec, szName); if (!str) { printf("Error:: Variable %s not found!\n", szName); - cfgUnloadConfig(&cfg); - return 2; + ret = 2; + goto end; } else if (mode & 0x80) printf("%s\n", str); else - printf("Variable %s=%s\n", szName, str); + printf("%s=%s\n", szName, str); } if ((mode & 0x7f) & 2) { VERB(2) printf("u-boot-env: set variable %s\n", szName); - ret = ub_setenv(szName, argc ? szVal : NULL); + ret = ub_setenv(szSec, szName, argc ? szVal : NULL); if (ret) { printf("Error:: Writing variable %s!\n", szName); - cfgUnloadConfig(&cfg); - return 3; + ret = 3; + goto end; } if (!(mode & 0x80)) printf("Done\n"); } +end: + ub_unload(); cfgUnloadConfig(&cfg); - return 0; + return ret; }