Commit a18e2f94c5c1c202b703482e5aabdaa261c3d95a
Require filename argument
Charles Lehner committed on 2/10/2015, 2:23:51 PMParent: 1954e349b19978c7e219c6610f4b143d6658af82
Files changed
main.c | changed |
main.c | |||
---|---|---|---|
@@ -13,30 +13,35 @@ | |||
13 | 13 … | ['5'] = 1, ['6'] = 1, ['7'] = 1, ['8'] = 1, ['9'] = 1, | |
14 | 14 … | ['.'] = 1, ['-'] = 1, ['e'] = 1, ['E'] = 1, 0 | |
15 | 15 … | }; | |
16 | 16 … | ||
17 … | +void usage(const char *progname) | ||
18 … | +{ | ||
19 … | + errx(1, "Usage: %s output.png [-h height] " | ||
20 … | + "[-c color] [-s scaling]", progname); | ||
21 … | +} | ||
22 … | + | ||
17 | 23 … | int main(int argc, char *argv[]) | |
18 | 24 … | { | |
19 | 25 … | struct pngspark ps; | |
20 | 26 … | const char *color = "#000000"; | |
21 | - const char *filename = "pngspark.png"; | ||
27 … | + const char *filename = NULL; | ||
22 | 28 … | double scaling = 0.8; | |
23 | 29 … | int height = 10; | |
24 | 30 … | ||
25 | 31 … | for (int i = 1; i < argc; i++) { | |
26 | - if (argv[i][0] != '-') continue; | ||
27 | - if (argv[i][1] == '-') { | ||
28 | - if (!strcmp("help", argv[i]+2)) { | ||
29 | - errx(1, "Usage: %s [--help] [-h height] " | ||
30 | - "[-o output.png] [-c color] [-s scale_min]", argv[0]); | ||
32 … | + if (argv[i][0] != '-') { | ||
33 … | + if (filename) { | ||
34 … | + usage(argv[0]); | ||
35 … | + } else { | ||
36 … | + filename = argv[i]; | ||
31 | 37 … | } | |
32 | - } else if (!argv[i][2]) switch (argv[i][1]) { | ||
38 … | + } else if (argv[i][2]) { | ||
39 … | + errx(1, "extra argument: %s", argv[i]); | ||
40 … | + } else switch (argv[i][1]) { | ||
33 | 41 … | case 'c': | |
34 | 42 … | if (++i < argc) color = argv[i]; | |
35 | 43 … | break; | |
36 | - case 'o': | ||
37 | - if (++i < argc) filename = argv[i]; | ||
38 | - break; | ||
39 | 44 … | case 'h': | |
40 | 45 … | if (++i < argc) height = atoi(argv[i]); | |
41 | 46 … | break; | |
42 | 47 … | case 's': | |
@@ -44,8 +49,12 @@ | |||
44 | 49 … | break; | |
45 | 50 … | } | |
46 | 51 … | } | |
47 | 52 … | ||
53 … | + if (!filename) { | ||
54 … | + usage(argv[0]); | ||
55 … | + } | ||
56 … | + | ||
48 | 57 … | FILE *file = fopen(filename, "w"); | |
49 | 58 … | if (!file) err(1, "unable to open file %s", filename); | |
50 | 59 … | ||
51 | 60 … | if (pngspark_init(&ps, height, color, scaling) < 0) |
Built with git-ssb-web