diff options
Diffstat (limited to 'tools/mkimage.c')
| -rw-r--r-- | tools/mkimage.c | 51 | 
1 files changed, 26 insertions, 25 deletions
| diff --git a/tools/mkimage.c b/tools/mkimage.c index 2bf9a5b5e..6826eae77 100644 --- a/tools/mkimage.c +++ b/tools/mkimage.c @@ -299,23 +299,35 @@ NXTARG:		;  	params.imagefile = *argv; -	if (!params.fflag){ -		if (params.lflag) { -			ifd = open (params.imagefile, O_RDONLY|O_BINARY); -		} else { -			ifd = open (params.imagefile, -				O_RDWR|O_CREAT|O_TRUNC|O_BINARY, 0666); -		} +	if (params.fflag){ +		if (tparams->fflag_handle) +			/* +			 * in some cases, some additional processing needs +			 * to be done if fflag is defined +			 * +			 * For ex. fit_handle_file for Fit file support +			 */ +			retval = tparams->fflag_handle(¶ms); -		if (ifd < 0) { -			fprintf (stderr, "%s: Can't open %s: %s\n", -				params.cmdname, params.imagefile, -				strerror(errno)); -			exit (EXIT_FAILURE); -		} +		if (retval != EXIT_SUCCESS) +			exit (retval); +	} + +	if (params.lflag || params.fflag) { +		ifd = open (params.imagefile, O_RDONLY|O_BINARY); +	} else { +		ifd = open (params.imagefile, +			O_RDWR|O_CREAT|O_TRUNC|O_BINARY, 0666); +	} + +	if (ifd < 0) { +		fprintf (stderr, "%s: Can't open %s: %s\n", +			params.cmdname, params.imagefile, +			strerror(errno)); +		exit (EXIT_FAILURE);  	} -	if (params.lflag) { +	if (params.lflag || params.fflag) {  		/*  		 * list header information of existing image  		 */ @@ -353,17 +365,6 @@ NXTARG:		;  		(void) close (ifd);  		exit (retval); -	} else if (params.fflag) { -		if (tparams->fflag_handle) -			/* -			 * in some cases, some additional processing needs -			 * to be done if fflag is defined -			 * -			 * For ex. fit_handle_file for Fit file support -			 */ -			retval = tparams->fflag_handle(¶ms); - -		exit (retval);  	}  	/* |