diff options
| author | Wolfgang Denk <wd@denx.de> | 2011-02-11 20:20:51 +0100 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2011-02-15 21:46:39 +0100 | 
| commit | 67fb0622a95b6b6ac7931631fbc021c946ff30ca (patch) | |
| tree | 031147640e0fa14386fc92040188008e4c35e586 /common/cmd_mem.c | |
| parent | cc22b795fb5fee72bd567eec5d33a11e8b989086 (diff) | |
| download | olio-uboot-2014.01-67fb0622a95b6b6ac7931631fbc021c946ff30ca.tar.xz olio-uboot-2014.01-67fb0622a95b6b6ac7931631fbc021c946ff30ca.zip | |
unzip: return uncompressed size in `filesize', and print it.
The unzip command did not provide a way for the caller to get any
information about the uncompressed size.  To make it better usable in
scripts, we now store the uncompressed size in the `filesize'
variable, like we do when for example loading a file over the network
or when reading it from a file system.  Following that analogy, it is
only consequent to also print the size.
Signed-off-by: Wolfgang Denk <wd@denx.de>
Diffstat (limited to 'common/cmd_mem.c')
| -rw-r--r-- | common/cmd_mem.c | 10 | 
1 files changed, 9 insertions, 1 deletions
| diff --git a/common/cmd_mem.c b/common/cmd_mem.c index ccf420a13..4b524cfc1 100644 --- a/common/cmd_mem.c +++ b/common/cmd_mem.c @@ -1212,6 +1212,7 @@ int do_unzip ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  {  	unsigned long src, dst;  	unsigned long src_len = ~0UL, dst_len = ~0UL; +	char buf[32];  	switch (argc) {  		case 4: @@ -1225,7 +1226,14 @@ int do_unzip ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])  			return cmd_usage(cmdtp);  	} -	return !!gunzip((void *) dst, dst_len, (void *) src, &src_len); +	if (gunzip((void *) dst, dst_len, (void *) src, &src_len) != 0) +		return 1; + +	printf("Uncompressed size: %ld = 0x%lX\n", src_len, src_len); +	sprintf(buf, "%lX", src_len); +	setenv("filesize", buf); + +	return 0;  }  #endif /* CONFIG_CMD_UNZIP */ |