00001 #include "cmdline.H"
00002 using namespace std;
00003
00004
00005
00006 bool CommandLine::empty= true;
00007
00008 Tuple<string> CommandLine::parameters;
00009
00010 map< string, Tuple<string> > CommandLine::tags;
00011
00012 string CommandLine::exec_file;
00013
00014
00015 void CommandLine::init(int argc, char** argv){
00016 long i, k, n;
00017 Tuple<string> temp;
00018
00019
00020 exec_file= string(argv[0]);
00021
00022 if(argc == 1){
00023 parameters.resize(0);
00024 tags.clear();
00025 return;
00026 }
00027
00028
00029 empty= false;
00030
00031
00032 n= 1;
00033 while(n < argc && argv[n][0] != '-')
00034 n++;
00035 parameters.resize(n-1);
00036 for(i=0; i< n-1; i++)
00037 parameters[i]= string(argv[i+1]);
00038
00039 while(n < argc){
00040 temp.resize(0);
00041 i= n+1;
00042 while( i < argc && argv[i][0] != '-' )
00043 i++;
00044 temp.resize(i-n-1);
00045 for(k=0; k < i-n-1; k++)
00046 temp[k]= string(argv[n+k+1]);
00047 tags[string(argv[n])]= temp;
00048
00049 n= i;
00050 }
00051 return;
00052 }
00053
00054
00055 bool CommandLine::has_tag(string thetag){
00056
00057 return (tags.count(thetag) > 0);
00058 }
00059
00060
00061
00062
00063
00064
00065
00066