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

View File

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