From 82e684b8103172cf41a88b01800147fe88f2c33d Mon Sep 17 00:00:00 2001 From: Michal Koutenský Date: Thu, 12 Nov 2015 20:39:33 +0100 Subject: parse options using getopt --- src/main.c | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) (limited to 'src') diff --git a/src/main.c b/src/main.c index 950b0ff..f0c3a9f 100644 --- a/src/main.c +++ b/src/main.c @@ -19,6 +19,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #include #include #include +#include #include "image.h" #include "texture.h" @@ -80,10 +81,16 @@ void print_usage(const char* name) , IMV_VERSION, name); } -void parse_arg(const char* name, const char* arg) +void parse_args(int argc, char** argv) { - for(const char *o = arg; *o != 0; ++o) { - switch(*o) { + /* Do not print getopt errors */ + opterr = 0; + + const char* name = argv[0]; + char o; + + while((o = getopt(argc, argv, "firah")) != -1) { + switch(o) { case 'f': g_options.fullscreen = 1; break; case 'i': g_options.stdin = 1; @@ -92,11 +99,15 @@ void parse_arg(const char* name, const char* arg) case 'r': g_options.recursive = 1; break; case 'a': g_options.actual = 1; break; case 'h': print_usage(name); exit(0); break; - default: - fprintf(stderr, "Unknown argument '%c'. Aborting.\n", *o); + case '?': + fprintf(stderr, "Unknown argument '%c'. Aborting.\n", optopt); exit(1); } } + + if(optind Date: Thu, 12 Nov 2015 20:58:33 +0100 Subject: position independend - --- src/main.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/main.c b/src/main.c index f0c3a9f..b4ac73d 100644 --- a/src/main.c +++ b/src/main.c @@ -104,10 +104,6 @@ void parse_args(int argc, char** argv) exit(1); } } - - if(optind