diff options
author | Adam NAILI | 2018-01-09 14:27:48 +0100 |
---|---|---|
committer | Adam NAILI | 2018-01-09 14:27:48 +0100 |
commit | 803524799631bcc96ee1fa7e194516fb23d8d9b3 (patch) | |
tree | e7428b12534764a0618a8ce8994447d2f0765e60 /src | |
parent | 02d84427f1c70b2e410b733adae22f2d33ad0f73 (diff) | |
download | morpher-803524799631bcc96ee1fa7e194516fb23d8d9b3.tar.gz |
Implementing option --help handling
Diffstat (limited to 'src')
-rw-r--r-- | src/main.c | 57 |
1 files changed, 41 insertions, 16 deletions
@@ -1,25 +1,50 @@ | |||
1 | #include <stdlib.h> | 1 | #include <stdlib.h> |
2 | #include <stdio.h> | 2 | #include <stdio.h> |
3 | #include <unistd.h> | ||
4 | #include <getopt.h> | ||
3 | #include "gui/gui.h" | 5 | #include "gui/gui.h" |
4 | #include "MLV/MLV_path.h" | 6 | #include "MLV/MLV_path.h" |
5 | 7 | ||
6 | int main(int argc, char **argv) { | 8 | int main(int argc, char **argv) { |
7 | if (argc < 3) { | 9 | int opt = 0; |
8 | fprintf(stderr, "Not enough argument (2 correct pathfiles required)\n"); | 10 | int help = -1; |
9 | exit(-1); | 11 | static struct option long_options[] = { |
10 | } | 12 | {"help", 0, 0, 'h'}, |
11 | if (argc > 3) { | 13 | {0, 0, 0, 0} |
12 | fprintf(stderr, "Too much arguments (2 correct pathfiles required)\n"); | ||
13 | exit(-2); | ||
14 | } | ||
15 | if (!(MLV_path_is_a_file(argv[1])) || !(MLV_path_is_a_file(argv[2]))) { | ||
16 | fprintf(stderr, "One path is incorrect\n"); | ||
17 | exit(-3); | ||
18 | }; | 14 | }; |
19 | GUI *gui = gui_create(argv[1], argv[2]); | 15 | int long_index = 0; |
20 | while (mode != EXITING) { | 16 | /*Option handling*/ |
21 | gui_handle_event(gui); | 17 | while ((opt = getopt_long_only(argc, argv, "h", long_options, &long_index)) != -1) { |
18 | switch (opt) { | ||
19 | case 'h': | ||
20 | help = 0; | ||
21 | break; | ||
22 | default: | ||
23 | exit(EXIT_FAILURE); | ||
24 | } | ||
25 | } | ||
26 | if (help == 0) { | ||
27 | printf( | ||
28 | "--Morphing's Help--\nTo use the morphing, you need to put two correct paths to image files.\n\nCorrect image format :\nICO(Icon)/CUR(Cursor)/BMP, PNM (PPM/PGM/PBM), XPM, LBM(IFF ILBM), PCX, GIF, JPEG, PNG, TGA, TIFF, and XV.\n\nMorphing made by:\n Pacien TRAN-GIRARD and Adam NAILI\n"); | ||
29 | } else { | ||
30 | int nbArg = argc - optind; | ||
31 | if (nbArg < 2) { | ||
32 | fprintf(stderr, "Not enough argument (2 correct pathfiles required)\n"); | ||
33 | exit(-1); | ||
34 | } | ||
35 | if (nbArg > 2) { | ||
36 | fprintf(stderr, "Too much arguments (2 correct pathfiles required)\n"); | ||
37 | exit(-2); | ||
38 | } | ||
39 | if (!(MLV_path_is_a_file(argv[optind])) || !(MLV_path_is_a_file(argv[optind + 1]))) { | ||
40 | fprintf(stderr, "One path is incorrect\n"); | ||
41 | exit(-3); | ||
42 | }; | ||
43 | GUI *gui = gui_create(argv[optind], argv[optind + 1]); | ||
44 | while (mode != EXITING) { | ||
45 | gui_handle_event(gui); | ||
46 | } | ||
47 | gui_destroy(gui); | ||
22 | } | 48 | } |
23 | gui_destroy(gui); | 49 | exit(EXIT_SUCCESS); |
24 | return 0; | ||
25 | } | 50 | } |