@ -950,11 +950,15 @@ sep_err:
# ifdef CONFIG_CMD_IMPORTENV
/*
* env import [ - d ] [ - t | - b | - c ] addr [ size ]
* env import [ - d ] [ - t [ - r ] | - b | - c ] addr [ size ]
* - d : delete existing environment before importing ;
* otherwise overwrite / append to existion definitions
* - t : assume text format ; either " size " must be given or the
* text data must be ' \0 ' terminated
* - r : handle CRLF like LF , that means exported variables with
* a content which ends with \ r won ' t get imported . Used
* to import text files created with editors which are using CRLF
* for line endings . Only effective in addition to - t .
* - b : assume binary format ( ' \0 ' separated , " \0 \0 " terminated )
* - c : assume checksum protected environment format
* addr : memory address to read from
@ -970,6 +974,7 @@ static int do_env_import(cmd_tbl_t *cmdtp, int flag,
int chk = 0 ;
int fmt = 0 ;
int del = 0 ;
int crlf_is_lf = 0 ;
size_t size ;
cmd = * argv ;
@ -994,6 +999,9 @@ static int do_env_import(cmd_tbl_t *cmdtp, int flag,
goto sep_err ;
sep = ' \n ' ;
break ;
case ' r ' : /* handle CRLF like LF */
crlf_is_lf = 1 ;
break ;
case ' d ' :
del = 1 ;
break ;
@ -1009,6 +1017,9 @@ static int do_env_import(cmd_tbl_t *cmdtp, int flag,
if ( ! fmt )
printf ( " ## Warning: defaulting to text format \n " ) ;
if ( sep ! = ' \n ' & & crlf_is_lf )
crlf_is_lf = 0 ;
addr = simple_strtoul ( argv [ 0 ] , NULL , 16 ) ;
ptr = map_sysmem ( addr , 0 ) ;
@ -1050,8 +1061,8 @@ static int do_env_import(cmd_tbl_t *cmdtp, int flag,
ptr = ( char * ) ep - > data ;
}
if ( himport_r ( & env_htab , ptr , size , sep , del ? 0 : H_NOCLEAR , 0 ,
NULL ) = = 0 ) {
if ( himport_r ( & env_htab , ptr , size , sep , del ? 0 : H_NOCLEAR ,
crlf_is_lf , 0 , NULL ) = = 0 ) {
error ( " Environment import failed: errno = %d \n " , errno ) ;
return 1 ;
}
@ -1180,7 +1191,7 @@ static char env_help_text[] =
# endif
# endif
# if defined(CONFIG_CMD_IMPORTENV)
" env import [-d] [-t | -b | -c] addr [size] - import environment \n "
" env import [-d] [-t [-r] | -b | -c] addr [size] - import environment \n "
# endif
" env print [-a | name ...] - print environment \n "
# if defined(CONFIG_CMD_RUN)