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