diff options
author | Anton Babushkin <anton.babushkin@me.com> | 2014-03-08 22:03:25 +0400 |
---|---|---|
committer | Anton Babushkin <anton.babushkin@me.com> | 2014-03-08 22:03:25 +0400 |
commit | 544de3c9f030693ed24f5e46658204a3d3f644fc (patch) | |
tree | 813947df30a240329e0ce1552faf37fc701a5e0c /src | |
parent | aca6806b82b8ee201260a9e383879b6d821dba1a (diff) | |
parent | 8783bed114e8ece85d62f15d0d2a06c28aa0bcfe (diff) | |
download | px4-firmware-544de3c9f030693ed24f5e46658204a3d3f644fc.tar.gz px4-firmware-544de3c9f030693ed24f5e46658204a3d3f644fc.tar.bz2 px4-firmware-544de3c9f030693ed24f5e46658204a3d3f644fc.zip |
Merge branch 'getopt_fixes' into sdlog2_opt
Diffstat (limited to 'src')
-rw-r--r-- | src/modules/sdlog2/sdlog2.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/modules/sdlog2/sdlog2.c b/src/modules/sdlog2/sdlog2.c index 58890322b..ad3a7f12c 100644 --- a/src/modules/sdlog2/sdlog2.c +++ b/src/modules/sdlog2/sdlog2.c @@ -670,6 +670,10 @@ int sdlog2_thread_main(int argc, char *argv[]) argv += 2; int ch; + /* don't exit from getopt loop to leave getopt global variables in consistent state, + * set error flag instead */ + bool err_flag = false; + while ((ch = getopt(argc, argv, "r:b:eat")) != EOF) { switch (ch) { case 'r': { @@ -716,13 +720,20 @@ int sdlog2_thread_main(int argc, char *argv[]) } else { warnx("unknown option character `\\x%x'", optopt); } + err_flag = true; + break; default: - sdlog2_usage("unrecognized flag"); - errx(1, "exiting"); + warnx("unrecognized flag"); + err_flag = true; + break; } } + if (err_flag) { + sdlog2_usage(NULL); + } + gps_time = 0; /* create log root dir */ |