summaryrefslogtreecommitdiff
path: root/navit/tools/gpx2navit_txt/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'navit/tools/gpx2navit_txt/src/main.c')
-rw-r--r--navit/tools/gpx2navit_txt/src/main.c497
1 files changed, 246 insertions, 251 deletions
diff --git a/navit/tools/gpx2navit_txt/src/main.c b/navit/tools/gpx2navit_txt/src/main.c
index e244957fc..24164abcb 100644
--- a/navit/tools/gpx2navit_txt/src/main.c
+++ b/navit/tools/gpx2navit_txt/src/main.c
@@ -28,8 +28,7 @@ void setOptions(int argc, char **argv, g2sprop * prop);
/**
* Shows a version
*/
-void version(void)
-{
+void version(void) {
fprintf(stdout, "gpx2navit_txt 0.1\n");
fprintf(stdout, "\n");
fprintf(stdout, "by Toshihiro Hiraoka\n");
@@ -39,89 +38,88 @@ void version(void)
/**
* Shows a usage message
*/
-void usage(char **argv)
-{
+void usage(char **argv) {
fprintf(stdout, "Usage: %s gpxfile [options] [-o output basename]\n",
- argv[0]);
+ argv[0]);
fprintf(stdout,
- "-o, --output Sets output basename. The default is (source file\n");
+ "-o, --output Sets output basename. The default is (source file\n");
fprintf(stdout, " name) - (extention name)\n");
fprintf
- (stdout,
- "-w, --waypoints Converts only waypoints data from a gpx file.\n");
+ (stdout,
+ "-w, --waypoints Converts only waypoints data from a gpx file.\n");
fprintf(stdout,
- "-t, --trackpoints Converts only trackpoints data from a gpx file.\n");
+ "-t, --trackpoints Converts only trackpoints data from a gpx file.\n");
fprintf(stdout,
- "-r, --routes Converts only routes data from a gpx file.\n");
+ "-r, --routes Converts only routes data from a gpx file.\n");
fprintf(stdout,
- "-a, --all Converts all types of data from a gpx file.(default)\n");
+ "-a, --all Converts all types of data from a gpx file.(default)\n");
fprintf(stdout,
- "-e, --as-edge Makes a separated output by each edges.\n");
+ "-e, --as-edge Makes a separated output by each edges.\n");
fprintf(stdout,
- "-p, --as-point Makes a separated output by each points.\n");
+ "-p, --as-point Makes a separated output by each points.\n");
fprintf(stdout,
- "-s, --stats Shows simple statistics of the outputs.\n");
+ "-s, --stats Shows simple statistics of the outputs.\n");
fprintf(stdout,
- "-b, --basic-columns Stores only basic data as attribures to \n");
+ "-b, --basic-columns Stores only basic data as attribures to \n");
fprintf(stdout,
- " reduce memory and storage usage.\n");
+ " reduce memory and storage usage.\n");
fprintf(stdout,
- " (ele, name, cmt, type, time, fix, sym and number).\n");
+ " (ele, name, cmt, type, time, fix, sym and number).\n");
fprintf(stdout,
- "-L, --no-length Removes length column from a waypoint or trackpoint\n");
+ "-L, --no-length Removes length column from a waypoint or trackpoint\n");
fprintf(stdout, " attribute table.\n");
fprintf
- (stdout,
- "-S, --no-speed Removes speed column from a waypoint or trackpoint\n");
+ (stdout,
+ "-S, --no-speed Removes speed column from a waypoint or trackpoint\n");
fprintf(stdout, " attribute table.\n");
fprintf
- (stdout,
- "-T, --no-time Removes time column from an attribute table.\n");
+ (stdout,
+ "-T, --no-time Removes time column from an attribute table.\n");
fprintf(stdout,
- "-g, --gpxline Adds line number of GPX file as attribures.\n");
+ "-g, --gpxline Adds line number of GPX file as attribures.\n");
fprintf
- (stdout,
- "-f, --fast Make it faster without any checks.\n");
+ (stdout,
+ "-f, --fast Make it faster without any checks.\n");
fprintf(stdout,
- "-3, --3d Converts data using 3d format. (It's not compatible\n");
+ "-3, --3d Converts data using 3d format. (It's not compatible\n");
fprintf(stdout, " for Arcview 3.x.)\n");
fprintf(stdout,
- " --min-points Sets path minimum points to convert for noise reduction.\n");
+ " --min-points Sets path minimum points to convert for noise reduction.\n");
fprintf(stdout, " Default is 2.\n");
fprintf(stdout,
- " --min-length Sets path minimum length to convert for noise reduction.\n");
+ " --min-length Sets path minimum length to convert for noise reduction.\n");
fprintf(stdout, " Default is 0.\n");
fprintf(stdout,
- " --min-time Sets path minimum time period to convert for noise\n");
+ " --min-time Sets path minimum time period to convert for noise\n");
fprintf(stdout, " reduction.\n");
fprintf(stdout, " Default is 0.\n");
fprintf(stdout,
- " --length-unit Sets length unit from m,km,feet,mi and etc.\n");
+ " --length-unit Sets length unit from m,km,feet,mi and etc.\n");
fprintf(stdout, " The default is m.\n");
fprintf(stdout,
- " You can see the unit list from \"geod -lu\" command.\n");
+ " You can see the unit list from \"geod -lu\" command.\n");
fprintf
- (stdout,
- " --time-unit Sets time unit. The default is sec.\n");
+ (stdout,
+ " --time-unit Sets time unit. The default is sec.\n");
fprintf(stdout,
- " You can set from day, hour, min and sec.\n");
+ " You can set from day, hour, min and sec.\n");
fprintf(stdout,
- " --speed-length-unit Sets length unit for speed.\n");
+ " --speed-length-unit Sets length unit for speed.\n");
fprintf(stdout, " The default is km.\n");
fprintf(stdout,
- " You can see the unit list from \"geod -lu\" command.\n");
+ " You can see the unit list from \"geod -lu\" command.\n");
fprintf(stdout,
- " --speed-time-unit Sets time unit for speed calulation. Default is hour.\n");
+ " --speed-time-unit Sets time unit for speed calulation. Default is hour.\n");
fprintf(stdout,
- " You can set from day, hour, min and sec.\n");
+ " You can set from day, hour, min and sec.\n");
fprintf(stdout,
- " --length-ellipsoid Sets length ellipsoid like UGS84, clrk66. The default is\n");
+ " --length-ellipsoid Sets length ellipsoid like UGS84, clrk66. The default is\n");
fprintf(stdout, " UGS84.\n");
fprintf
- (stdout,
- " You can see the unit list from \"geod -le\" command.\n");
+ (stdout,
+ " You can see the unit list from \"geod -le\" command.\n");
fprintf(stdout,
- " --no-speed-check Disables track check for speed to be non-zero.\n");
+ " --no-speed-check Disables track check for speed to be non-zero.\n");
fprintf(stdout, "-v, --verbose Gives many messages.\n");
fprintf(stdout, " --version Shows version.\n");
fprintf(stdout, "-h, --help Shows this list.\n");
@@ -130,56 +128,55 @@ void usage(char **argv)
/**
* Sets default values to the properties when there is no user setting.
*/
-void setDefault(g2sprop * prop)
-{
+void setDefault(g2sprop * prop) {
char *pargv[2];
int pargc = 2;
char *ellps;
/* if there are no options like -p,-w,-e, sets as -a */
if (!(prop->parseWpt | prop->parseTrk | prop->parseRte)) {
- prop->parseWpt = 1;
- prop->parseTrk = 1;
- prop->parseRte = 1;
+ prop->parseWpt = 1;
+ prop->parseTrk = 1;
+ prop->parseRte = 1;
}
/* if there is no output setting, sets it as [sourcefile name] - ".gpx" */
if (prop->output == NULL) {
- char *dot = strrchr(prop->sourcefile, '.');
- prop->output =
- (char *) malloc(sizeof(char) * strlen(prop->sourcefile) + 1);
- if (0 == strcmp(dot, ".gpx")) {
- int len = dot - prop->sourcefile;
- strncpy(prop->output, prop->sourcefile, len);
- prop->output[len] = 0;
- } else {
- fprintf(stderr,
- "The source file doesn't have .gpx extension.\n");
- exit(ERR_ISNOTGPX);
- }
+ char *dot = strrchr(prop->sourcefile, '.');
+ prop->output =
+ (char *) malloc(sizeof(char) * strlen(prop->sourcefile) + 1);
+ if (0 == strcmp(dot, ".gpx")) {
+ int len = dot - prop->sourcefile;
+ strncpy(prop->output, prop->sourcefile, len);
+ prop->output[len] = 0;
+ } else {
+ fprintf(stderr,
+ "The source file doesn't have .gpx extension.\n");
+ exit(ERR_ISNOTGPX);
+ }
}
/* sets ellipsoid "WGS84" */
if (prop->ellipsoid == NULL) {
- prop->ellipsoid = (char *) malloc(sizeof(char) * 7);
- strcpy(prop->ellipsoid, "WGS84");
+ prop->ellipsoid = (char *) malloc(sizeof(char) * 7);
+ strcpy(prop->ellipsoid, "WGS84");
}
/* sets lengthUnit "m" */
if (prop->lengthUnit == NULL) {
- prop->lengthUnit = (char *) malloc(sizeof(char) * 2);
- strcpy(prop->lengthUnit, "m");
+ prop->lengthUnit = (char *) malloc(sizeof(char) * 2);
+ strcpy(prop->lengthUnit, "m");
}
/* sets timeUnit "sec" */
if (prop->timeUnit == NULL) {
- prop->timeUnit = (char *) malloc(sizeof(char) * 4);
- strcpy(prop->timeUnit, "sec");
+ prop->timeUnit = (char *) malloc(sizeof(char) * 4);
+ strcpy(prop->timeUnit, "sec");
}
/* sets speedLengthUnit "km" */
if (prop->speedLengthUnit == NULL) {
- prop->speedLengthUnit = (char *) malloc(sizeof(char) * 3);
- strcpy(prop->speedLengthUnit, "km");
+ prop->speedLengthUnit = (char *) malloc(sizeof(char) * 3);
+ strcpy(prop->speedLengthUnit, "km");
}
/* sets speedTimeUnit "hour" */
if (prop->speedTimeUnit == NULL) {
- prop->speedTimeUnit = (char *) malloc(sizeof(char) * 5);
- strcpy(prop->speedTimeUnit, "hour");
+ prop->speedTimeUnit = (char *) malloc(sizeof(char) * 5);
+ strcpy(prop->speedTimeUnit, "hour");
}
/* sets ellipsoid setting to geod* programs */
ellps = malloc(sizeof(char) * (strlen(prop->ellipsoid) + 8));
@@ -194,8 +191,8 @@ void setDefault(g2sprop * prop)
prop->speed2sec = checkTimeUnit(prop->speedTimeUnit);
geod_set(pargc, pargv);
if (prop->verbose) {
- printf("source filename:\t%s\n", prop->sourcefile);
- printf("output file base name:\t%s\n", prop->output);
+ printf("source filename:\t%s\n", prop->sourcefile);
+ printf("output file base name:\t%s\n", prop->output);
}
free(ellps);
}
@@ -203,196 +200,195 @@ void setDefault(g2sprop * prop)
/**
* Set options from command arguments
*/
-void setOptions(int argc, char **argv, g2sprop * prop)
-{
+void setOptions(int argc, char **argv, g2sprop * prop) {
int result;
/* option struct for getopt_long */
struct option const long_options[] = {
- {"waypoints", no_argument, 0, 'w'},
- {"trackpoints", no_argument, 0, 't'},
- {"routes", no_argument, 0, 'r'},
- {"output", required_argument, 0, 'o'},
- {"as-edge", no_argument, 0, 'e'},
- {"as-point", no_argument, 0, 'p'},
- {"min-points", required_argument, 0, 'P'},
- {"min-length", required_argument, 0, 'l'},
- {"min-time", required_argument, 0, 'm'},
- {"stats", no_argument, 0, 's'},
- {"basic-columns", no_argument, 0, 'b'},
- {"fast", no_argument, 0, 'f'},
- {"length-unit", required_argument, 0, '4'},
- {"time-unit", required_argument, 0, '8'},
- {"length-ellipsoid", required_argument, 0, '7'},
- {"speed-length-unit", required_argument, 0, '5'},
- {"speed-time-unit", required_argument, 0, '6'},
- {"no-speed", no_argument, 0, 'S'},
- {"no-length", no_argument, 0, 'L'},
- {"no-time", no_argument, 0, 'T'},
- {"verbose", no_argument, 0, 'v'},
- {"gpxline", no_argument, 0, 'g'},
- {"all", no_argument, 0, 'a'},
- {"no-speed-check", no_argument, 0, '9'},
- {"version", no_argument, 0, 'V'},
- {"help", no_argument, 0, '?'},
- {0, no_argument, 0, '0'},
+ {"waypoints", no_argument, 0, 'w'},
+ {"trackpoints", no_argument, 0, 't'},
+ {"routes", no_argument, 0, 'r'},
+ {"output", required_argument, 0, 'o'},
+ {"as-edge", no_argument, 0, 'e'},
+ {"as-point", no_argument, 0, 'p'},
+ {"min-points", required_argument, 0, 'P'},
+ {"min-length", required_argument, 0, 'l'},
+ {"min-time", required_argument, 0, 'm'},
+ {"stats", no_argument, 0, 's'},
+ {"basic-columns", no_argument, 0, 'b'},
+ {"fast", no_argument, 0, 'f'},
+ {"length-unit", required_argument, 0, '4'},
+ {"time-unit", required_argument, 0, '8'},
+ {"length-ellipsoid", required_argument, 0, '7'},
+ {"speed-length-unit", required_argument, 0, '5'},
+ {"speed-time-unit", required_argument, 0, '6'},
+ {"no-speed", no_argument, 0, 'S'},
+ {"no-length", no_argument, 0, 'L'},
+ {"no-time", no_argument, 0, 'T'},
+ {"verbose", no_argument, 0, 'v'},
+ {"gpxline", no_argument, 0, 'g'},
+ {"all", no_argument, 0, 'a'},
+ {"no-speed-check", no_argument, 0, '9'},
+ {"version", no_argument, 0, 'V'},
+ {"help", no_argument, 0, '?'},
+ {0, no_argument, 0, '0'},
};
if (argc <= 1) {
- fprintf(stderr, "There is no argument.\n");
- usage(argv);
- exit(ERR_NOARGS);
+ fprintf(stderr, "There is no argument.\n");
+ usage(argv);
+ exit(ERR_NOARGS);
}
/* set option attributes */
while ((result =
- getopt_long(argc, argv, "3wtrao:epfP:l:m:bS4:5:6:7:8:LTSsvg09",
- long_options, NULL)) != -1) {
- switch (result) {
- case '3': /* 3d output */
- prop->is3d = 1;
- break;
- case 'w': /* converts only waypoint */
- prop->parseWpt = 1;
- break;
- case 't': /* converts only trackpoint */
- prop->parseTrk = 1;
- break;
- case 'r': /* converts only route */
- prop->parseRte = 1;
- break;
- case 'a': /* converts all */
- prop->parseWpt = 1;
- prop->parseTrk = 1;
- prop->parseRte = 1;
- break;
- case 'o': /* sets basename of output file */
- prop->output =
- (char *) malloc(sizeof(char) * strlen(optarg) + 1);
- strcpy(prop->output, optarg);
- break;
- case 'e': /* make output by each edges */
- if (prop->isEdge) {
- fprintf(stderr, "option -e cannot use with -f\n");
- exit(ERR_OPTIONCONFRICT);
- }
- prop->isEdge = 1;
- break;
- case 'p': /* make output by each edges */
- prop->isPoint = 1;
- break;
- case 'f': /* make it faster */
- if (prop->isEdge) {
- fprintf(stderr, "option -f cannot use with -e\n");
- exit(ERR_OPTIONCONFRICT);
- }
- prop->isFast = 1;
- prop->cols->desc = 0;
- prop->cols->src = 0;
- prop->cols->link = 0;
- prop->cols->magvar = 0;
- prop->cols->geoidheight = 0;
- prop->cols->sat = 0;
- prop->cols->hdop = 0;
- prop->cols->vdop = 0;
- prop->cols->pdop = 0;
- prop->cols->ageofdgpsdata = 0;
- prop->cols->dgpsid = 0;
- prop->cols->length = 0;
- prop->cols->interval = 0;
- prop->cols->speed = 0;
- break;
- case 'P': /* sets minimun points as a path */
- prop->minpoints = atoi(optarg);
- break;
- case 'l': /* sets minimun length as a path */
- prop->minlength = atoi(optarg);
- break;
- case 'm': /* sets minimun time as a path */
- prop->mintime = atoi(optarg);
- break;
- case 'b': /* use only some columns */
- prop->cols->desc = 0;
- prop->cols->src = 0;
- prop->cols->link = 0;
- prop->cols->magvar = 0;
- prop->cols->geoidheight = 0;
- prop->cols->sat = 0;
- prop->cols->hdop = 0;
- prop->cols->vdop = 0;
- prop->cols->pdop = 0;
- prop->cols->ageofdgpsdata = 0;
- prop->cols->dgpsid = 0;
- prop->cols->length = 0;
- prop->cols->interval = 0;
- prop->cols->speed = 0;
- break;
- case 'S': /* doesn't make speed column */
- prop->cols->speed = 0;
- break;
- case '4': /* sets length unit */
- prop->lengthUnit = malloc(sizeof(char) * (strlen(optarg) + 1));
- strcpy(prop->lengthUnit, optarg);
- break;
- case '5': /* sets length unit for calculating speed */
- prop->speedLengthUnit =
- malloc(sizeof(char) * (strlen(optarg) + 1));
- strcpy(prop->speedLengthUnit, optarg);
- break;
- case '6': /* sets time unit for calculating speed */
- prop->speedTimeUnit =
- malloc(sizeof(char) * (strlen(optarg) + 1));
- strcpy(prop->speedTimeUnit, optarg);
- break;
- case '7': /* sets ellipsoid for calculating length */
- prop->ellipsoid = malloc(sizeof(char) * (strlen(optarg) + 1));
- strcpy(prop->ellipsoid, optarg);
- break;
- case '8': /* sets time unit */
- prop->timeUnit = malloc(sizeof(char) * (strlen(optarg) + 1));
- strcpy(prop->timeUnit, optarg);
- break;
- case '9': /* disables speed check */
- prop->nospeedcheck=1;
- break;
- case 'L': /* doesn't make length column */
- prop->cols->length = 0;
- break;
- case 'T': /* doesn't make time column */
- prop->cols->interval = 0;
- break;
- case 's': /* shows source file stats */
- prop->needsStats = 1;
- break;
- case 'v': /* verbose mode */
- prop->verbose = 1;
- break;
- case 'V': /* shows version */
- version();
- exit(EXIT_SUCCESS);
- break;
- case 'g': /* adds gpx line number column */
- prop->cols->gpxline = 1;
- break;
- case ':':
- usage(argv);
- exit(ERR_WRONGOPTION);
- break;
- case '0':
- usage(argv);
- exit(ERR_WRONGOPTION);
- break;
- default:
- usage(argv);
- exit(ERR_WRONGOPTION);
- break;
- }
+ getopt_long(argc, argv, "3wtrao:epfP:l:m:bS4:5:6:7:8:LTSsvg09",
+ long_options, NULL)) != -1) {
+ switch (result) {
+ case '3': /* 3d output */
+ prop->is3d = 1;
+ break;
+ case 'w': /* converts only waypoint */
+ prop->parseWpt = 1;
+ break;
+ case 't': /* converts only trackpoint */
+ prop->parseTrk = 1;
+ break;
+ case 'r': /* converts only route */
+ prop->parseRte = 1;
+ break;
+ case 'a': /* converts all */
+ prop->parseWpt = 1;
+ prop->parseTrk = 1;
+ prop->parseRte = 1;
+ break;
+ case 'o': /* sets basename of output file */
+ prop->output =
+ (char *) malloc(sizeof(char) * strlen(optarg) + 1);
+ strcpy(prop->output, optarg);
+ break;
+ case 'e': /* make output by each edges */
+ if (prop->isEdge) {
+ fprintf(stderr, "option -e cannot use with -f\n");
+ exit(ERR_OPTIONCONFRICT);
+ }
+ prop->isEdge = 1;
+ break;
+ case 'p': /* make output by each edges */
+ prop->isPoint = 1;
+ break;
+ case 'f': /* make it faster */
+ if (prop->isEdge) {
+ fprintf(stderr, "option -f cannot use with -e\n");
+ exit(ERR_OPTIONCONFRICT);
+ }
+ prop->isFast = 1;
+ prop->cols->desc = 0;
+ prop->cols->src = 0;
+ prop->cols->link = 0;
+ prop->cols->magvar = 0;
+ prop->cols->geoidheight = 0;
+ prop->cols->sat = 0;
+ prop->cols->hdop = 0;
+ prop->cols->vdop = 0;
+ prop->cols->pdop = 0;
+ prop->cols->ageofdgpsdata = 0;
+ prop->cols->dgpsid = 0;
+ prop->cols->length = 0;
+ prop->cols->interval = 0;
+ prop->cols->speed = 0;
+ break;
+ case 'P': /* sets minimun points as a path */
+ prop->minpoints = atoi(optarg);
+ break;
+ case 'l': /* sets minimun length as a path */
+ prop->minlength = atoi(optarg);
+ break;
+ case 'm': /* sets minimun time as a path */
+ prop->mintime = atoi(optarg);
+ break;
+ case 'b': /* use only some columns */
+ prop->cols->desc = 0;
+ prop->cols->src = 0;
+ prop->cols->link = 0;
+ prop->cols->magvar = 0;
+ prop->cols->geoidheight = 0;
+ prop->cols->sat = 0;
+ prop->cols->hdop = 0;
+ prop->cols->vdop = 0;
+ prop->cols->pdop = 0;
+ prop->cols->ageofdgpsdata = 0;
+ prop->cols->dgpsid = 0;
+ prop->cols->length = 0;
+ prop->cols->interval = 0;
+ prop->cols->speed = 0;
+ break;
+ case 'S': /* doesn't make speed column */
+ prop->cols->speed = 0;
+ break;
+ case '4': /* sets length unit */
+ prop->lengthUnit = malloc(sizeof(char) * (strlen(optarg) + 1));
+ strcpy(prop->lengthUnit, optarg);
+ break;
+ case '5': /* sets length unit for calculating speed */
+ prop->speedLengthUnit =
+ malloc(sizeof(char) * (strlen(optarg) + 1));
+ strcpy(prop->speedLengthUnit, optarg);
+ break;
+ case '6': /* sets time unit for calculating speed */
+ prop->speedTimeUnit =
+ malloc(sizeof(char) * (strlen(optarg) + 1));
+ strcpy(prop->speedTimeUnit, optarg);
+ break;
+ case '7': /* sets ellipsoid for calculating length */
+ prop->ellipsoid = malloc(sizeof(char) * (strlen(optarg) + 1));
+ strcpy(prop->ellipsoid, optarg);
+ break;
+ case '8': /* sets time unit */
+ prop->timeUnit = malloc(sizeof(char) * (strlen(optarg) + 1));
+ strcpy(prop->timeUnit, optarg);
+ break;
+ case '9': /* disables speed check */
+ prop->nospeedcheck=1;
+ break;
+ case 'L': /* doesn't make length column */
+ prop->cols->length = 0;
+ break;
+ case 'T': /* doesn't make time column */
+ prop->cols->interval = 0;
+ break;
+ case 's': /* shows source file stats */
+ prop->needsStats = 1;
+ break;
+ case 'v': /* verbose mode */
+ prop->verbose = 1;
+ break;
+ case 'V': /* shows version */
+ version();
+ exit(EXIT_SUCCESS);
+ break;
+ case 'g': /* adds gpx line number column */
+ prop->cols->gpxline = 1;
+ break;
+ case ':':
+ usage(argv);
+ exit(ERR_WRONGOPTION);
+ break;
+ case '0':
+ usage(argv);
+ exit(ERR_WRONGOPTION);
+ break;
+ default:
+ usage(argv);
+ exit(ERR_WRONGOPTION);
+ break;
+ }
}
/* gets a source file name */
if(argv[optind] == NULL) {
- fprintf(stderr, "There is no gpxfile description.\n");
- usage(argv);
- exit(ERR_WRONGOPTION);
+ fprintf(stderr, "There is no gpxfile description.\n");
+ usage(argv);
+ exit(ERR_WRONGOPTION);
}
prop->sourcefile = malloc(sizeof(char) * (strlen(argv[optind]) + 1));
- /** @note needs to change here to support
+ /** @note needs to change here to support
* a several files convertion */
strcpy(prop->sourcefile, argv[optind]);
setDefault(prop);
@@ -401,14 +397,13 @@ void setOptions(int argc, char **argv, g2sprop * prop)
/**
* Main
*/
-int main(int argc, char **argv)
-{
+int main(int argc, char **argv) {
g2sprop *prop;
prop = createProp();
setOptions(argc, argv, prop);
parseMain(prop);
if (prop->needsStats)
- showStats(prop);
+ showStats(prop);
closeProp(prop);
return (0);
}