X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Ftagmodifier.c;fp=src%2Ftagmodifier.c;h=e01b49024d74ca5523dc438f89a1b03605fb2361;hb=9dffc9de96014e24d1fd1030a79317ba34c504e8;hp=06bcc87d67b2171fc5b69de8818183bb880543e0;hpb=42c9226fc71c19af4d755c6900120bfa07f7e99c;p=routino diff --git a/src/tagmodifier.c b/src/tagmodifier.c index 06bcc87..e01b490 100644 --- a/src/tagmodifier.c +++ b/src/tagmodifier.c @@ -1,5 +1,5 @@ /*************************************** - $Header: /home/amb/routino/src/RCS/tagmodifier.c,v 1.5 2010/05/30 18:18:54 amb Exp $ + $Header: /home/amb/routino/src/RCS/tagmodifier.c,v 1.8 2010/11/13 14:22:28 amb Exp $ Test application for OSM XML file parser / tagging rule testing. @@ -28,7 +28,8 @@ #include #include -#include "functions.h" +#include "files.h" +#include "logging.h" #include "xmlparse.h" #include "tagging.h" @@ -258,7 +259,7 @@ static int nodeType_function(const char *_tag_,int _type_,const char *id,const c nnodes++; if(!(nnodes%1000)) - fprintf(stderr,"\rReading: Lines=%ld Nodes=%ld Ways=%ld Relations=%ld",ParseXML_LineNumber(),nnodes,nways,nrelations); + fprintf_middle(stderr,"Reading: Lines=%ld Nodes=%ld Ways=%ld Relations=%ld",ParseXML_LineNumber(),nnodes,nways,nrelations); current_tags=NewTagList(); } @@ -374,7 +375,7 @@ static int wayType_function(const char *_tag_,int _type_,const char *id,const ch nways++; if(!(nways%1000)) - fprintf(stderr,"\rReading: Lines=%ld Nodes=%ld Ways=%ld Relations=%ld",ParseXML_LineNumber(),nnodes,nways,nrelations); + fprintf_middle(stderr,"Reading: Lines=%ld Nodes=%ld Ways=%ld Relations=%ld",ParseXML_LineNumber(),nnodes,nways,nrelations); current_tags=NewTagList(); } @@ -440,7 +441,7 @@ static int relationType_function(const char *_tag_,int _type_,const char *id,con nrelations++; if(!(nrelations%1000)) - fprintf(stderr,"\rReading: Lines=%ld Nodes=%ld Ways=%ld Relations=%ld",ParseXML_LineNumber(),nnodes,nways,nrelations); + fprintf_middle(stderr,"Reading: Lines=%ld Nodes=%ld Ways=%ld Relations=%ld",ParseXML_LineNumber(),nnodes,nways,nrelations); current_tags=NewTagList(); } @@ -539,6 +540,8 @@ int main(int argc,char **argv) { if(!strcmp(argv[arg],"--help")) print_usage(1); + else if(!strcmp(argv[arg],"--loggable")) + option_loggable=1; else if(!strncmp(argv[arg],"--tagging=",10)) tagging=&argv[arg][10]; else if(argv[arg][0]=='-' && argv[arg][1]=='-') @@ -551,23 +554,33 @@ int main(int argc,char **argv) /* Check the specified command line options */ - if(tagging && ExistsFile(tagging)) - ; - else if(!tagging && ExistsFile("tagging.xml")) - tagging="tagging.xml"; - - if(tagging && ParseXMLTaggingRules(tagging)) + if(tagging) { - fprintf(stderr,"Error: Cannot read the tagging rules in the file '%s'.\n",tagging); - return(1); + if(!ExistsFile(tagging)) + { + fprintf(stderr,"Error: The '--tagging' option specifies a file that does not exist.\n"); + return(1); + } + } + else + { + if(ExistsFile("tagging.xml")) + tagging="tagging.xml"; + else + { + fprintf(stderr,"Error: The '--tagging' option was not used and the default 'tagging.xml' does not exist.\n"); + return(1); + } } - if(!tagging) + if(ParseXMLTaggingRules(tagging)) { - fprintf(stderr,"Error: Cannot run without reading some tagging rules.\n"); + fprintf(stderr,"Error: Cannot read the tagging rules in the file '%s'.\n",tagging); return(1); } + /* Open the input file */ + if(filename) { file=fopen(filename,"rb"); @@ -583,11 +596,11 @@ int main(int argc,char **argv) /* Parse the file */ - fprintf(stderr,"\rReading: Lines=0 Nodes=0 Ways=0 Relations=0"); + fprintf_first(stderr,"Reading: Lines=0 Nodes=0 Ways=0 Relations=0"); retval=ParseXML(file,xml_toplevel_tags,XMLPARSE_UNKNOWN_ATTR_IGNORE); - fprintf(stderr,"\rRead: Lines=%ld Nodes=%ld Ways=%ld Relations=%ld \n",ParseXML_LineNumber(),nnodes,nways,nrelations); + fprintf_last(stderr,"Read: Lines=%ld Nodes=%ld Ways=%ld Relations=%ld",ParseXML_LineNumber(),nnodes,nways,nrelations); /* Tidy up */ @@ -608,6 +621,7 @@ static void print_usage(int detail) { fprintf(stderr, "Usage: tagmodifier [--help]\n" + " [--loggable]\n" " [--tagging=]\n" " []\n"); @@ -616,6 +630,8 @@ static void print_usage(int detail) "\n" "--help Prints this information.\n" "\n" + "--loggable Print progress messages suitable for logging to file.\n" + "\n" "--tagging= The name of the XML file containing the tagging rules\n" " (defaults to 'tagging.xml' in current directory).\n" "\n"