Commit 9d796fb3 authored by Robert Schmidt's avatar Robert Schmidt

getopt_long() returns int

Use the right type for variable, as getopt_long() returns an int. Using
char is not a problem on x86, but prevents the return of -1 in case of
parameter reading end. This led to infinite loops on ARM, which is fixed
through the variable type change. An additional counter measure (showing
the problem) would be to print and error out when reading an undefined
parameter, which is added here as well.

This has been forgotten when making the same change for getopt() in
cf985460 ("getopt() returns int").
parent 677a904b
...@@ -69,7 +69,7 @@ int main (int argc, char * const argv[]) ...@@ -69,7 +69,7 @@ int main (int argc, char * const argv[])
{NULL, 0, NULL, 0} {NULL, 0, NULL, 0}
}; };
int option_index; int option_index;
char option_short; int option_short;
/* /*
* Read command line parameters * Read command line parameters
...@@ -94,6 +94,8 @@ int main (int argc, char * const argv[]) ...@@ -94,6 +94,8 @@ int main (int argc, char * const argv[])
output_dir = optarg; output_dir = optarg;
break; break;
default: default:
fprintf(stderr, "unknown option %d, exit\n", option_short);
exit(1);
break; break;
} }
} }
......
...@@ -69,7 +69,7 @@ int main (int argc, char * const argv[]) ...@@ -69,7 +69,7 @@ int main (int argc, char * const argv[])
{NULL, 0, NULL, 0} {NULL, 0, NULL, 0}
}; };
int option_index; int option_index;
char option_short; int option_short;
/* /*
* Read command line parameters * Read command line parameters
...@@ -94,6 +94,8 @@ int main (int argc, char * const argv[]) ...@@ -94,6 +94,8 @@ int main (int argc, char * const argv[])
output_dir = optarg; output_dir = optarg;
break; break;
default: default:
fprintf(stderr, "unknown option %d, exit\n", option_short);
exit(1);
break; break;
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment