Date:2015-05-22 15:46:37 (8 years 4 months ago)
Author:Werner Almesberger
Commit:ea11b88bee941efb5a451b1509b752913c9b9ec6
Message:gp2rml/gp2rml.c (main): use getopt

Files: gp2rml/gp2rml.c (4 diffs)

Change Details

gp2rml/gp2rml.c
11/*
22 * gp2rml.c - Convert from gnuplot to RML
33 *
4 * Written 2010-2013 by Werner Almesberger
5 * Copyright 2010-2013 Werner Almesberger
4 * Written 2010-2013, 2015 by Werner Almesberger
5 * Copyright 2010-2013, 2015 Werner Almesberger
66 *
77 * This program is free software; you can redistribute it and/or modify
88 * it under the terms of the GNU General Public License as published by
...... 
3535
3636#include <stdlib.h>
3737#include <stdio.h>
38#include <unistd.h>
3839#include <string.h>
3940#include <math.h>
4041
...... 
197198}
198199
199200
200int main(int argc, const char **argv)
201int main(int argc, char *const *argv)
201202{
202    const char *name;
203203    FILE *file;
204204    char *end;
205205    int i;
206206    double p[3];
207    int c;
208
209     while ((c = getopt(argc, argv, "s:")) != EOF)
210        switch (c) {
211        case 's':
212            z_scale = strtod(optarg &end);
213            if (*end)
214                usage(*argv);
215            break;
216        default:
217            usage(*argv);
218        }
207219
208    name = *argv;
209
210    if (argc > 2 && !strcmp(argv[1], "-s")) {
211        if (argc < 3)
212            usage(name);
213        z_scale = strtod(argv[2], &end);
214        if (*end)
215            usage(name);
216        argc -= 2;
217        argv += 2;
218    }
219
220    switch (argc) {
221    case 4:
220    switch (argc - optind) {
221    case 3:
222222        file = stdin;
223223        break;
224    case 5:
225        file = fopen(argv[4], "r");
224    case 4:
225        file = fopen(argv[optind + 3], "r");
226226        if (!file) {
227            perror(argv[4]);
227            perror(argv[optind + 3]);
228228            return 1;
229229        }
230230        break;
231231    default:
232        usage(name);
232        usage(*argv);
233233    }
234234    for (i = 0; i != 3; i++) {
235        p[i] = strtod(argv[i+1], &end);
235        p[i] = strtod(argv[optind + i], &end);
236236        /*
237237         * Allow the clearance to have a unit, for consistency in
238238         * mkmk-simple
...... 
240240        if (!i && *end && !strcmp(end, "mm"))
241241            continue;
242242        if (*end || p[i] <= 0)
243            usage(name);
243            usage(*argv);
244244    }
245245
246246    process_file(file);

Archive Download the corresponding diff file

Branches:
master



interactive