static int do_env_edit(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { char buffer[CONFIG_SYS_CBSIZE]; char *init_val; if (argc < 2) return CMD_RET_USAGE; /* before import into hashtable */ if (!(gd->flags & GD_FLG_ENV_READY)) return 1; /* Set read buffer to initial value or empty sting */ init_val = getenv(argv[1]); if (init_val) snprintf(buffer, CONFIG_SYS_CBSIZE, "%s", init_val); else buffer[0] = '\0'; if (cli_readline_into_buffer("edit: ", buffer, 0) < 0) return 1; if (buffer[0] == '\0') { const char * const _argv[3] = { "setenv", argv[1], NULL }; return _do_env_set(0, 2, (char * const *)_argv, H_INTERACTIVE); } else { const char * const _argv[4] = { "setenv", argv[1], buffer, NULL }; return _do_env_set(0, 3, (char * const *)_argv, H_INTERACTIVE); } }
static void ait_menu_read_env(char *name) { char output[CONFIG_SYS_CBSIZE]; char cbuf[CONFIG_SYS_CBSIZE]; int readret; int ret; sprintf(output, "%s old: %s value: ", name, getenv(name)); memset(cbuf, 0, CONFIG_SYS_CBSIZE); readret = cli_readline_into_buffer(output, cbuf, 0); if (readret >= 0) { ret = setenv(name, cbuf); if (ret) { printf("Error setting %s\n", name); return; } } return; }
static int do_env_edit(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { char buffer[CONFIG_SYS_CBSIZE]; char *init_val; if (argc < 2) return CMD_RET_USAGE; /* Set read buffer to initial value or empty sting */ init_val = getenv(argv[1]); if (init_val) sprintf(buffer, "%s", init_val); else buffer[0] = '\0'; if (cli_readline_into_buffer("edit: ", buffer, 0) < 0) return 1; return setenv(argv[1], buffer); }