Correct argument parsing logic

This commit is contained in:
Dominic Spill
2017-01-27 16:06:01 -07:00
parent b047dd0cb4
commit 9e78ccb4e7
2 changed files with 16 additions and 12 deletions

View File

@ -148,8 +148,12 @@ int main(int argc, char** argv)
reset = true; reset = true;
break; break;
case '?':
usage();
return EXIT_FAILURE;
default: default:
fprintf(stderr, "opt error: %d\n", opt); fprintf(stderr, "unknown argument '-%c %s'\n", opt, optarg);
usage(); usage();
return EXIT_FAILURE; return EXIT_FAILURE;
} }
@ -162,28 +166,24 @@ int main(int argc, char** argv)
} }
} }
if((write == read) && (write == reset)) { if(write && read) {
if(write && read) { fprintf(stderr, "Read and write options are mutually exclusive.\n");
fprintf(stderr, "Read and write options are mutually exclusive.\n");
} else {
fprintf(stderr, "Specify either read, write, or reset option.\n");
}
usage(); usage();
return EXIT_FAILURE; return EXIT_FAILURE;
} }
if((read || write) && (path == NULL)) { if(!(write || read || reset)) {
fprintf(stderr, "Specify a path to a file.\n"); fprintf(stderr, "Specify either read, write, or reset option.\n");
usage(); usage();
return EXIT_FAILURE; return EXIT_FAILURE;
} }
if( write ) if( write )
{ {
fd = fopen(path, "rb"); fd = fopen(path, "rb");
if(fd == NULL) if(fd == NULL)
{ {
printf("Error to open file %s\n", path); printf("Error opening file %s\n", path);
return EXIT_FAILURE; return EXIT_FAILURE;
} }
/* Get size of the file */ /* Get size of the file */

View File

@ -673,6 +673,10 @@ int main(int argc, char** argv) {
result = parse_u32(optarg, &crystal_correct_ppm); result = parse_u32(optarg, &crystal_correct_ppm);
break; break;
case '?':
usage();
return EXIT_FAILURE;
default: default:
fprintf(stderr, "unknown argument '-%c %s'\n", opt, optarg); fprintf(stderr, "unknown argument '-%c %s'\n", opt, optarg);
usage(); usage();