diff options
| -rw-r--r-- | tools/mkenvimage.c | 26 | 
1 files changed, 13 insertions, 13 deletions
| diff --git a/tools/mkenvimage.c b/tools/mkenvimage.c index b6879bcef..032dc8365 100644 --- a/tools/mkenvimage.c +++ b/tools/mkenvimage.c @@ -171,15 +171,9 @@ int main(int argc, char **argv)  	memset(envptr, padbyte, envsize);  	/* Open the input file ... */ -	if (optind >= argc) { -		fprintf(stderr, "Please specify an input filename\n"); -		return EXIT_FAILURE; -	} - -	txt_filename = argv[optind]; -	if (strcmp(txt_filename, "-") == 0) { +	if (optind >= argc || strcmp(argv[optind], "-") == 0) {  		int readbytes = 0; -		int readlen = sizeof(*envptr) * 2048; +		int readlen = sizeof(*envptr) * 4096;  		txt_fd = STDIN_FILENO;  		do { @@ -198,6 +192,7 @@ int main(int argc, char **argv)  		} while (readbytes == readlen);  	} else { +		txt_filename = argv[optind];  		txt_fd = open(txt_filename, O_RDONLY);  		if (txt_fd == -1) {  			fprintf(stderr, "Can't open \"%s\": %s\n", @@ -287,11 +282,16 @@ int main(int argc, char **argv)  	memcpy(dataptr, &targetendian_crc, sizeof(uint32_t)); -	bin_fd = creat(bin_filename, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP); -	if (bin_fd == -1) { -		fprintf(stderr, "Can't open output file \"%s\": %s\n", -				bin_filename, strerror(errno)); -		return EXIT_FAILURE; +	if (!bin_filename || strcmp(bin_filename, "-") == 0) { +		bin_fd = STDOUT_FILENO; +	} else { +		bin_fd = creat(bin_filename, S_IRUSR | S_IWUSR | S_IRGRP | +					     S_IWGRP); +		if (bin_fd == -1) { +			fprintf(stderr, "Can't open output file \"%s\": %s\n", +					bin_filename, strerror(errno)); +			return EXIT_FAILURE; +		}  	}  	if (write(bin_fd, dataptr, sizeof(*dataptr) * datasize) != |