diff options
Diffstat (limited to 'dimension/main.c')
-rw-r--r-- | dimension/main.c | 47 |
1 files changed, 17 insertions, 30 deletions
diff --git a/dimension/main.c b/dimension/main.c index 80bc6e6..26f131c 100644 --- a/dimension/main.c +++ b/dimension/main.c @@ -104,48 +104,35 @@ main(int argc, char **argv) break; case 'w': - { - char *endptr; - width = strtol(optarg, &endptr, 10); - if (*endptr != '\0' || endptr == optarg || width <= 0) { - fprintf(stderr, "Invalid argument to --width!\n"); - print_usage(stderr, argv[0]); - return EXIT_FAILURE; - } - break; + if (!dmnsn_strtoi(&width, optarg, 10) || width <= 0) { + fprintf(stderr, "Invalid argument to --width!\n"); + print_usage(stderr, argv[0]); + return EXIT_FAILURE; } case 'h': - { - char *endptr; - height = strtol(optarg, &endptr, 10); - if (*endptr != '\0' || endptr == optarg || height <= 0) { - fprintf(stderr, "Invalid argument to --height!\n"); - print_usage(stderr, argv[0]); - return EXIT_FAILURE; - } - break; + if (!dmnsn_strtoi(&height, optarg, 10) || height <= 0) { + fprintf(stderr, "Invalid argument to --height!\n"); + print_usage(stderr, argv[0]); + return EXIT_FAILURE; } + break; case DMNSN_OPT_THREADS: - { - char *endptr; - nthreads = strtol(optarg, &endptr, 10); - if (*endptr != '\0' || endptr == optarg || nthreads <= 0) { - fprintf(stderr, "Invalid argument to --threads!\n"); - print_usage(stderr, argv[0]); - return EXIT_FAILURE; - } - break; + if (!dmnsn_strtoi(&nthreads, optarg, 10) || nthreads <= 0) { + fprintf(stderr, "Invalid argument to --threads!\n"); + print_usage(stderr, argv[0]); + return EXIT_FAILURE; } + break; case DMNSN_OPT_QUALITY: { - char *endptr; - quality = strtoul(optarg, &endptr, 0); - if (*endptr != '\0' || endptr == optarg) { + unsigned int iqual; + if (!dmnsn_strtoui(&iqual, optarg, 0)) { fprintf(stderr, "Invalid argument to --quality!\n"); print_usage(stderr, argv[0]); return EXIT_FAILURE; } + quality = iqual; break; } case DMNSN_OPT_STRICT: |